corrects tests for latest code changes

This commit is contained in:
Mouse Reeve 2020-11-07 17:48:50 -08:00
parent 20395ff2ec
commit cfa4cb015d
8 changed files with 22 additions and 73 deletions

View file

@ -76,7 +76,8 @@ class ActivityObject:
if not isinstance(self, model.activity_serializer): if not isinstance(self, model.activity_serializer):
raise TypeError('Wrong activity type for model') raise TypeError('Wrong activity type for model')
# check for an existing instance # check for an existing instance, if we're not updating a known obj
if not instance:
try: try:
return model.objects.get(remote_id=self.id) return model.objects.get(remote_id=self.id)
except model.DoesNotExist: except model.DoesNotExist:

View file

@ -64,8 +64,10 @@ class SelfConnector(TestCase):
def test_search_default_filter(self): def test_search_default_filter(self):
self.edition.default = True ''' it should get rid of duplicate editions for the same work '''
self.edition.save() self.work.default_edition = self.edition
self.work.save()
results = self.connector.search('Anonymous') results = self.connector.search('Anonymous')
self.assertEqual(len(results), 1) self.assertEqual(len(results), 1)
self.assertEqual(results[0].title, 'Edition of Example Work') self.assertEqual(results[0].title, 'Edition of Example Work')

View file

@ -17,6 +17,7 @@ class Favorite(TestCase):
self.local_user = models.User.objects.create_user( self.local_user = models.User.objects.create_user(
'mouse', 'mouse@mouse.com', 'mouseword', 'mouse', 'mouse@mouse.com', 'mouseword',
remote_id='http://local.com/user/mouse') remote_id='http://local.com/user/mouse')
self.status = models.Status.objects.create( self.status = models.Status.objects.create(
user=self.local_user, user=self.local_user,
content='Test status', content='Test status',
@ -33,24 +34,13 @@ class Favorite(TestCase):
def test_handle_favorite(self): def test_handle_favorite(self):
activity = { activity = {
'@context': 'https://www.w3.org/ns/activitystreams', '@context': 'https://www.w3.org/ns/activitystreams',
'id': 'http://example.com/activity/1', 'id': 'http://example.com/fav/1',
'type': 'Create',
'actor': 'https://example.com/users/rat', 'actor': 'https://example.com/users/rat',
'published': 'Mon, 25 May 2020 19:31:20 GMT', 'published': 'Mon, 25 May 2020 19:31:20 GMT',
'to': ['https://example.com/user/rat/followers'],
'cc': ['https://www.w3.org/ns/activitystreams#Public'],
'object': {
'@context': 'https://www.w3.org/ns/activitystreams',
'id': 'http://example.com/fav/1',
'type': 'Like',
'actor': 'https://example.com/users/rat',
'object': 'http://local.com/status/1', 'object': 'http://local.com/status/1',
},
'signature': {}
} }
result = incoming.handle_favorite(activity) incoming.handle_favorite(activity)
fav = models.Favorite.objects.get(remote_id='http://example.com/fav/1') fav = models.Favorite.objects.get(remote_id='http://example.com/fav/1')
self.assertEqual(fav.status, self.status) self.assertEqual(fav.status, self.status)

View file

@ -1,3 +1,4 @@
''' when a remote user changes their profile '''
import json import json
import pathlib import pathlib
from django.test import TestCase from django.test import TestCase

View file

@ -39,17 +39,8 @@ class Book(TestCase):
title='Invalid Book' title='Invalid Book'
) )
def test_default_edition(self):
''' a work should always be able to produce a deafult edition '''
self.assertIsInstance(self.work.default_edition, models.Edition)
self.assertEqual(self.work.default_edition, self.first_edition)
self.second_edition.default = True
self.second_edition.save()
self.assertEqual(self.work.default_edition, self.second_edition)
def test_isbn_10_to_13(self): def test_isbn_10_to_13(self):
''' checksums and so on '''
isbn_10 = '178816167X' isbn_10 = '178816167X'
isbn_13 = isbn_10_to_13(isbn_10) isbn_13 = isbn_10_to_13(isbn_10)
self.assertEqual(isbn_13, '9781788161671') self.assertEqual(isbn_13, '9781788161671')
@ -59,8 +50,8 @@ class Book(TestCase):
self.assertEqual(isbn_13, '9781788161671') self.assertEqual(isbn_13, '9781788161671')
def test_isbn_13_to_10(self): def test_isbn_13_to_10(self):
''' checksums and so on '''
isbn_13 = '9781788161671' isbn_13 = '9781788161671'
isbn_10 = isbn_13_to_10(isbn_13) isbn_10 = isbn_13_to_10(isbn_13)
self.assertEqual(isbn_10, '178816167X') self.assertEqual(isbn_10, '178816167X')

View file

@ -38,16 +38,6 @@ class Shelving(TestCase):
# make sure the book is on the shelf # make sure the book is on the shelf
self.assertEqual(shelf.books.get(), self.book) self.assertEqual(shelf.books.get(), self.book)
# it should have posted a status about this
status = models.GeneratedNote.objects.get()
self.assertEqual(status.content, 'wants to read')
self.assertEqual(status.user, self.user)
self.assertEqual(status.mention_books.count(), 1)
self.assertEqual(status.mention_books.first(), self.book)
# and it should not create a read-through
self.assertEqual(models.ReadThrough.objects.count(), 0)
def test_handle_shelve_reading(self): def test_handle_shelve_reading(self):
shelf = models.Shelf.objects.get(identifier='reading') shelf = models.Shelf.objects.get(identifier='reading')
@ -56,20 +46,6 @@ class Shelving(TestCase):
# make sure the book is on the shelf # make sure the book is on the shelf
self.assertEqual(shelf.books.get(), self.book) self.assertEqual(shelf.books.get(), self.book)
# it should have posted a status about this
status = models.GeneratedNote.objects.order_by('-published_date').first()
self.assertEqual(status.content, 'started reading')
self.assertEqual(status.user, self.user)
self.assertEqual(status.mention_books.count(), 1)
self.assertEqual(status.mention_books.first(), self.book)
# and it should create a read-through
readthrough = models.ReadThrough.objects.get()
self.assertEqual(readthrough.user, self.user)
self.assertEqual(readthrough.book.id, self.book.id)
self.assertIsNotNone(readthrough.start_date)
self.assertIsNone(readthrough.finish_date)
def test_handle_shelve_read(self): def test_handle_shelve_read(self):
shelf = models.Shelf.objects.get(identifier='read') shelf = models.Shelf.objects.get(identifier='read')
@ -78,20 +54,6 @@ class Shelving(TestCase):
# make sure the book is on the shelf # make sure the book is on the shelf
self.assertEqual(shelf.books.get(), self.book) self.assertEqual(shelf.books.get(), self.book)
# it should have posted a status about this
status = models.GeneratedNote.objects.order_by('-published_date').first()
self.assertEqual(status.content, 'finished reading')
self.assertEqual(status.user, self.user)
self.assertEqual(status.mention_books.count(), 1)
self.assertEqual(status.mention_books.first(), self.book)
# and it should update the existing read-through
readthrough = models.ReadThrough.objects.get()
self.assertEqual(readthrough.user, self.user)
self.assertEqual(readthrough.book.id, self.book.id)
self.assertIsNotNone(readthrough.start_date)
self.assertIsNotNone(readthrough.finish_date)
def test_handle_unshelve(self): def test_handle_unshelve(self):
self.shelf.books.add(self.book) self.shelf.books.add(self.book)

View file

@ -15,6 +15,8 @@ class Book(TestCase):
title='Example Edition', title='Example Edition',
parent_work=self.work parent_work=self.work
) )
self.work.default_edition = self.edition
self.work.save()
self.connector = models.Connector.objects.create( self.connector = models.Connector.objects.create(
identifier='test_connector', identifier='test_connector',

View file

@ -39,6 +39,7 @@ class Signature(TestCase):
) )
def send(self, signature, now, data, digest): def send(self, signature, now, data, digest):
''' test request '''
c = Client() c = Client()
return c.post( return c.post(
urlsplit(self.rat.inbox).path, urlsplit(self.rat.inbox).path,
@ -73,13 +74,13 @@ class Signature(TestCase):
def test_wrong_signature(self): def test_wrong_signature(self):
''' Messages must be signed by the right actor. ''' Messages must be signed by the right actor.
(cat cannot sign messages on behalf of mouse) (cat cannot sign messages on behalf of mouse) '''
'''
response = self.send_test_request(sender=self.mouse, signer=self.cat) response = self.send_test_request(sender=self.mouse, signer=self.cat)
self.assertEqual(response.status_code, 401) self.assertEqual(response.status_code, 401)
@responses.activate @responses.activate
def test_remote_signer(self): def test_remote_signer(self):
''' signtures for remote users '''
datafile = pathlib.Path(__file__).parent.joinpath('data/ap_user.json') datafile = pathlib.Path(__file__).parent.joinpath('data/ap_user.json')
data = json.loads(datafile.read_bytes()) data = json.loads(datafile.read_bytes())
data['id'] = self.fake_remote.remote_id data['id'] = self.fake_remote.remote_id
@ -138,7 +139,6 @@ class Signature(TestCase):
json=data, json=data,
status=200) status=200)
# Key correct: # Key correct:
response = self.send_test_request(sender=self.fake_remote) response = self.send_test_request(sender=self.fake_remote)
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)