chapeau/tests/tests_unit.py

152 wiersze
3.5 KiB
Python

from django.test import TestCase, Client
from django_kepi.models import Create, Like, Update, Delete, lookup
from things_for_testing.models import ThingUser, ThingArticle
import datetime
class UserTests(TestCase):
def test_create(self):
actor = ThingUser(
name='Dijkstra',
)
actor.save()
article = ThingArticle(
title='Go To statement considered harmful',
)
article.save()
create = Create(
actor=actor,
fobject=article,
)
create.save()
serialized = create.serialize()
for field in [
'id', 'type',
'object', 'actor',
'published', 'updated',
]:
self.assertIn(field, serialized)
self.assertIsInstance(
serialized['id'],
str)
self.assertEqual(
serialized['type'],
'Create')
self.assertDictEqual(
serialized['object'],
article.serialize(),
)
self.assertEqual(
serialized['actor'],
'https://example.com/user/Dijkstra')
self.assertIsInstance(
serialized['published'],
datetime.datetime,
)
self.assertIsInstance(
serialized['updated'],
datetime.datetime,
)
looked_up = lookup('create', create.slug)
self.assertEqual(
looked_up,
create,
)
def test_update(self):
actor = ThingUser(
name='Dijkstra',
)
actor.save()
article = ThingArticle(
title='Go To statement considered harmful',
)
article.save()
create = Create(
actor=actor,
fobject=article,
)
create.save()
article2 = ThingArticle(
title='Actually I rather like spaghetti code',
)
article2.save()
update = Update(
actor=actor,
fobject=article2,
)
update.save()
def test_delete(self):
actor = ThingUser(
name='Dijkstra',
)
actor.save()
article = ThingArticle(
title='Go To statement considered harmful',
)
article.save()
create = Create(
actor=actor,
fobject=article,
)
create.save()
delete = Delete(
actor=actor,
fobject=article,
)
delete.save()
# fetch by object ID (we can't do this atm) will get Tombstone
#raise ValueError(str(activity.serialize()))
def test_like(self):
liker = ThingUser(
name='Uncle Bulgaria',
)
liker.save()
author = ThingUser(
name='Dijkstra',
)
author.save()
article = ThingArticle(
title='Go To statement considered harmful',
)
article.save()
create = Create(
actor=author,
fobject=article,
)
create.save()
like = Like(
actor=liker,
fobject=article,
)
like.save()
#raise ValueError(like.serialize_as_str())