2018-08-07 15:21:45 +00:00
|
|
|
from django.test import TestCase, Client
|
2018-08-20 19:14:49 +00:00
|
|
|
from django_kepi.models import Create, Like, Update, Delete, lookup
|
2018-08-19 20:47:54 +00:00
|
|
|
from things_for_testing.models import ThingUser, ThingArticle
|
2018-08-20 19:14:49 +00:00
|
|
|
import datetime
|
2018-08-06 13:44:35 +00:00
|
|
|
|
2018-08-07 15:21:45 +00:00
|
|
|
class UserTests(TestCase):
|
|
|
|
|
2018-08-19 20:47:54 +00:00
|
|
|
def test_create(self):
|
2018-08-11 22:36:59 +00:00
|
|
|
|
2018-08-19 03:11:44 +00:00
|
|
|
actor = ThingUser(
|
2018-08-19 20:47:54 +00:00
|
|
|
name='Dijkstra',
|
2018-08-19 03:11:44 +00:00
|
|
|
)
|
|
|
|
actor.save()
|
2018-08-12 13:06:26 +00:00
|
|
|
|
2018-08-19 20:47:54 +00:00
|
|
|
article = ThingArticle(
|
|
|
|
title='Go To statement considered harmful',
|
|
|
|
)
|
|
|
|
article.save()
|
|
|
|
|
2018-08-20 19:14:49 +00:00
|
|
|
create = Create(
|
2018-08-19 20:47:54 +00:00
|
|
|
actor=actor,
|
|
|
|
fobject=article,
|
|
|
|
)
|
2018-08-20 19:14:49 +00:00
|
|
|
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,
|
|
|
|
)
|
2018-08-19 20:47:54 +00:00
|
|
|
|
2018-08-20 19:14:49 +00:00
|
|
|
looked_up = lookup('create', create.slug)
|
|
|
|
|
|
|
|
self.assertEqual(
|
|
|
|
looked_up,
|
|
|
|
create,
|
|
|
|
)
|
2018-08-19 20:47:54 +00:00
|
|
|
|
|
|
|
def test_update(self):
|
|
|
|
|
|
|
|
actor = ThingUser(
|
|
|
|
name='Dijkstra',
|
|
|
|
)
|
|
|
|
actor.save()
|
|
|
|
|
|
|
|
article = ThingArticle(
|
|
|
|
title='Go To statement considered harmful',
|
|
|
|
)
|
|
|
|
article.save()
|
|
|
|
|
2018-08-20 19:14:49 +00:00
|
|
|
create = Create(
|
2018-08-19 20:47:54 +00:00
|
|
|
actor=actor,
|
|
|
|
fobject=article,
|
|
|
|
)
|
2018-08-20 19:14:49 +00:00
|
|
|
create.save()
|
2018-08-19 20:47:54 +00:00
|
|
|
|
|
|
|
article2 = ThingArticle(
|
|
|
|
title='Actually I rather like spaghetti code',
|
|
|
|
)
|
|
|
|
article2.save()
|
|
|
|
|
2018-08-20 19:14:49 +00:00
|
|
|
update = Update(
|
2018-08-19 20:47:54 +00:00
|
|
|
actor=actor,
|
|
|
|
fobject=article2,
|
|
|
|
)
|
2018-08-20 19:14:49 +00:00
|
|
|
update.save()
|
2018-08-19 20:47:54 +00:00
|
|
|
|
|
|
|
def test_delete(self):
|
|
|
|
|
|
|
|
actor = ThingUser(
|
|
|
|
name='Dijkstra',
|
|
|
|
)
|
|
|
|
actor.save()
|
|
|
|
|
|
|
|
article = ThingArticle(
|
|
|
|
title='Go To statement considered harmful',
|
|
|
|
)
|
|
|
|
article.save()
|
|
|
|
|
2018-08-20 19:14:49 +00:00
|
|
|
create = Create(
|
2018-08-19 03:11:44 +00:00
|
|
|
actor=actor,
|
2018-08-19 20:47:54 +00:00
|
|
|
fobject=article,
|
2018-08-19 03:11:44 +00:00
|
|
|
)
|
2018-08-20 19:14:49 +00:00
|
|
|
create.save()
|
2018-08-19 03:11:44 +00:00
|
|
|
|
2018-08-20 19:14:49 +00:00
|
|
|
delete = Delete(
|
2018-08-19 20:47:54 +00:00
|
|
|
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()
|
|
|
|
|
2018-08-20 19:14:49 +00:00
|
|
|
#raise ValueError(like.serialize_as_str())
|