Coverage for clustersoftware / test_models.py: 100%
35 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
1from django.test import TransactionTestCase as TestCase
2from django.urls import reverse
4from .models import Model
5from vendor.models import Model as VendorModel
7from . import app_label
9from sm.utils import random_string, random_number
11import os
12import django
14os.environ["DJANGO_SETTINGS_MODULE"] = "sm.settings"
15django.setup()
18class Tester(TestCase):
19 model = Model
20 testversion = "{}.{}".format(random_number(), random_number())
21 teststring = random_string()
22 fixtures = [
23 "%s/fixtures/01_initial.yaml" % "vendor",
24 "%s/fixtures/01_initial.yaml" % app_label,
25 ]
26 testitem = None
28 def setUp(self):
29 self.vendor = VendorModel.objects.all().first()
30 self.testitem, created = self.get_or_create_testitem()
32 def get_or_create_testitem(self):
33 self.testitem, created = self.model.objects.get_or_create(
34 version=self.testversion,
35 name=self.teststring,
36 vendor=self.vendor,
37 )
38 return (self.testitem, created)
40 def test_create(self):
41 # Since we want to test if creation works, we
42 # need to manually prune the DB and create a testitem
43 self.model.objects.all().delete()
44 obj, created = self.get_or_create_testitem()
45 self.assertEqual(created, True, "the object was already there?")
46 self.assertIsInstance(obj, self.model, "object not correct model!?")
48 def test_version(self):
49 self.assertEqual(self.testitem.version, self.testversion, "version not correct")
51 def test_name(self):
52 self.assertEqual(self.testitem.name, self.teststring, "name not correct")
54 def test___str__(self):
55 self.assertEqual(
56 "{} {} {}".format(self.vendor.name, self.teststring, self.testversion),
57 "%s %s %s"
58 % (self.testitem.vendor.name, self.testitem.name, self.testitem.version),
59 "string representation not correct",
60 )
62 def test_absolute_url(self):
63 self.assertEqual(
64 "%s" % (self.testitem.get_absolute_url()),
65 "%s" % (reverse("%s:detail" % app_label, kwargs={"pk": self.testitem.pk})),
66 "absolute url not built correctly",
67 )