mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-11-26 03:21:05 +00:00
Merge pull request #307 from mouse-reeve/test
corrects tests for latest code changes
This commit is contained in:
commit
dce766a929
8 changed files with 22 additions and 73 deletions
|
@ -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 = {}
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
''' when a remote user changes their profile '''
|
||||
import json
|
||||
import pathlib
|
||||
from django.test import TestCase
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue