Merge pull request #307 from mouse-reeve/test

corrects tests for latest code changes
This commit is contained in:
Mouse Reeve 2020-11-07 18:32:35 -08:00 committed by GitHub
commit dce766a929
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 22 additions and 73 deletions

View file

@ -76,11 +76,12 @@ class ActivityObject:
if not isinstance(self, model.activity_serializer):
raise TypeError('Wrong activity type for model')
# check for an existing instance
try:
return model.objects.get(remote_id=self.id)
except model.DoesNotExist:
pass
# check for an existing instance, if we're not updating a known obj
if not instance:
try:
return model.objects.get(remote_id=self.id)
except model.DoesNotExist:
pass
model_fields = [m.name for m in model._meta.get_fields()]
mapped_fields = {}

View file

@ -64,8 +64,10 @@ class SelfConnector(TestCase):
def test_search_default_filter(self):
self.edition.default = True
self.edition.save()
''' it should get rid of duplicate editions for the same work '''
self.work.default_edition = self.edition
self.work.save()
results = self.connector.search('Anonymous')
self.assertEqual(len(results), 1)
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(
'mouse', 'mouse@mouse.com', 'mouseword',
remote_id='http://local.com/user/mouse')
self.status = models.Status.objects.create(
user=self.local_user,
content='Test status',
@ -33,24 +34,13 @@ class Favorite(TestCase):
def test_handle_favorite(self):
activity = {
'@context': 'https://www.w3.org/ns/activitystreams',
'id': 'http://example.com/activity/1',
'type': 'Create',
'id': 'http://example.com/fav/1',
'actor': 'https://example.com/users/rat',
'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',
},
'signature': {}
'object': 'http://local.com/status/1',
}
result = incoming.handle_favorite(activity)
incoming.handle_favorite(activity)
fav = models.Favorite.objects.get(remote_id='http://example.com/fav/1')
self.assertEqual(fav.status, self.status)

View file

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

View file

@ -39,17 +39,8 @@ class Book(TestCase):
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):
''' checksums and so on '''
isbn_10 = '178816167X'
isbn_13 = isbn_10_to_13(isbn_10)
self.assertEqual(isbn_13, '9781788161671')
@ -59,8 +50,8 @@ class Book(TestCase):
self.assertEqual(isbn_13, '9781788161671')
def test_isbn_13_to_10(self):
''' checksums and so on '''
isbn_13 = '9781788161671'
isbn_10 = isbn_13_to_10(isbn_13)
self.assertEqual(isbn_10, '178816167X')

View file

@ -38,16 +38,6 @@ class Shelving(TestCase):
# make sure the book is on the shelf
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):
shelf = models.Shelf.objects.get(identifier='reading')
@ -56,20 +46,6 @@ class Shelving(TestCase):
# make sure the book is on the shelf
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):
shelf = models.Shelf.objects.get(identifier='read')
@ -78,20 +54,6 @@ class Shelving(TestCase):
# make sure the book is on the shelf
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):
self.shelf.books.add(self.book)

View file

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

View file

@ -39,6 +39,7 @@ class Signature(TestCase):
)
def send(self, signature, now, data, digest):
''' test request '''
c = Client()
return c.post(
urlsplit(self.rat.inbox).path,
@ -73,13 +74,13 @@ class Signature(TestCase):
def test_wrong_signature(self):
''' 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)
self.assertEqual(response.status_code, 401)
@responses.activate
def test_remote_signer(self):
''' signtures for remote users '''
datafile = pathlib.Path(__file__).parent.joinpath('data/ap_user.json')
data = json.loads(datafile.read_bytes())
data['id'] = self.fake_remote.remote_id
@ -138,7 +139,6 @@ class Signature(TestCase):
json=data,
status=200)
# Key correct:
response = self.send_test_request(sender=self.fake_remote)
self.assertEqual(response.status_code, 200)