0

试图覆盖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 []>
4

0 回答 0