试图覆盖django-reversion
我的模型的测试功能,但版本不是在测试数据库中创建的,在从管理界面手动创建时一切正常。
模型:
@reversion.register()
class RuleSet(ModeratedBase, AdminUrlMixin):
"""Ruleset of a given type of contest related to the contest"""
name = models.CharField(
max_length=64,
help_text="Short name of the ruleset.",
unique=True
)
rules = models.JSONField(
default=dict,
help_text="Base rules dict for Ruleset",
blank=True,
null=True,
)
default_for = models.ManyToManyField(
"ci_contest.ContestType",
help_text="Field specifies content types ruleset is default for",
related_name="default_ruleset",
null=True,
blank=True,
)
def __str__(self):
return self.name
def get_versions(self):
return Version.objects.get_for_object(self)
测试:
class RulesetTestCase(TestCase):
fixtures = ["core-defaults", "gamer-defaults", "ledger-defaults", "contest-defaults"]
def setUp(self):
call_command("createinitialrevisions")
self.ruleset = RuleSetFactory()
def test_ruleset_get_versions(self):
self.assertFalse(self.ruleset.get_versions().exists())
self.ruleset.rules = str(fake.pydict())
self.ruleset.save()
print(self.ruleset.get_versions())
self.assertTrue(self.ruleset.get_versions().exists())
打印输出:
<VersionQuerySet []>