kopia lustrzana https://gitlab.com/marnanel/chapeau
Implemented the reblog fields of Status. Added "original" field.
Added tests for these.status-serialisers
rodzic
3c16c92a22
commit
06b9774418
|
@ -94,15 +94,28 @@ class Status(models.Model):
|
|||
|
||||
@property
|
||||
def reblogs_count(self):
|
||||
return 0 # FIXME
|
||||
return self.reblogs.count()
|
||||
|
||||
@property
|
||||
def favourites_count(self):
|
||||
return 0 # FIXME
|
||||
|
||||
@property
|
||||
def original(self):
|
||||
result = self.reblog_of
|
||||
|
||||
if result is None:
|
||||
return self
|
||||
|
||||
if result.reblog_of is not None:
|
||||
# Reblog of reblog, which is invalid
|
||||
return self
|
||||
|
||||
return result
|
||||
|
||||
@property
|
||||
def reblogged(self):
|
||||
return False # FIXME
|
||||
return self.reblogs.exists()
|
||||
|
||||
@property
|
||||
def favourited(self):
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
from django.test import TestCase
|
||||
from . import create_local_person, create_local_status
|
||||
|
||||
class TestReblog(TestCase):
|
||||
|
||||
def test_reblogged(self):
|
||||
alice = create_local_person(
|
||||
name = "alice",
|
||||
)
|
||||
|
||||
bob = create_local_person(
|
||||
name = "bob",
|
||||
)
|
||||
|
||||
original = create_local_status(
|
||||
content = "Hello world",
|
||||
posted_by = alice,
|
||||
)
|
||||
|
||||
self.assertFalse(
|
||||
original.reblogged,
|
||||
"Original status has initially not been reblogged",
|
||||
)
|
||||
|
||||
reblog = create_local_status(
|
||||
content = original.content,
|
||||
posted_by = bob,
|
||||
reblog_of = original,
|
||||
)
|
||||
|
||||
self.assertTrue(
|
||||
original.reblogged,
|
||||
"Original status has now been reblogged",
|
||||
)
|
||||
|
||||
def test_original(self):
|
||||
alice = create_local_person(
|
||||
name = "alice",
|
||||
)
|
||||
|
||||
bob = create_local_person(
|
||||
name = "bob",
|
||||
)
|
||||
|
||||
original = create_local_status(
|
||||
content = "Hello world",
|
||||
posted_by = alice,
|
||||
)
|
||||
|
||||
reblog = create_local_status(
|
||||
content = original.content,
|
||||
posted_by = bob,
|
||||
reblog_of = original,
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
original.original,
|
||||
original,
|
||||
"Original status is its own original",
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
reblog.original,
|
||||
original,
|
||||
"Original status is the original of the reblog",
|
||||
)
|
||||
|
||||
def test_reblogs_count(self):
|
||||
alice = create_local_person(
|
||||
name = "alice",
|
||||
)
|
||||
|
||||
bob = create_local_person(
|
||||
name = "bob",
|
||||
)
|
||||
|
||||
original = create_local_status(
|
||||
content = "Hello world",
|
||||
posted_by = alice,
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
original.reblogs_count,
|
||||
0,
|
||||
"original starts with zero reblogs")
|
||||
|
||||
for i in range(1, 20):
|
||||
|
||||
reblog = create_local_status(
|
||||
content = original.content,
|
||||
posted_by = bob,
|
||||
reblog_of = original,
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
original.reblogs_count,
|
||||
i,
|
||||
"Original reblogs increase",
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
reblog.reblogs_count,
|
||||
0,
|
||||
"Reblogs count of reblogs remains zero",
|
||||
)
|
||||
|
||||
|
Ładowanie…
Reference in New Issue