Coverage for cluster / test_models.py: 100%
37 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 clustersoftware.models import Model as ClustersoftwareModel
7from . import app_label
9from sm.utils import random_string, random_number
11from django.contrib.auth.models import User, Group
13import os
14import django
16os.environ["DJANGO_SETTINGS_MODULE"] = "sm.settings"
17django.setup()
20class Tester(TestCase):
21 model = Model
22 testversion = "{}.{}".format(random_number(), random_number())
23 teststring = random_string()
24 fixtures = [
25 "sm/fixtures/02_groups.yaml",
26 "%s/fixtures/01_initial.yaml" % "vendor",
27 "%s/fixtures/01_initial.yaml" % "clustersoftware",
28 "%s/fixtures/01_initial.yaml" % app_label,
29 ]
30 testitem = None
31 password = random_string()
33 def setUp(self):
34 self.user = User.objects.create_user(
35 username=random_string(),
36 password=self.password,
37 )
38 self.user.groups.set([Group.objects.all().first()])
40 self.clustersoftware = ClustersoftwareModel.objects.all().first()
41 self.testitem, created = self.get_or_create_testitem()
43 def get_or_create_testitem(self):
44 self.testitem, created = self.model.objects.get_or_create(
45 name=self.teststring,
46 clustersoftware=self.clustersoftware,
47 group=self.user.groups.all().first(),
48 )
49 return (self.testitem, created)
51 def test_create(self):
52 # Since we want to test if creation works, we
53 # need to manually prune the DB and create a testitem
54 self.model.objects.all().delete()
55 obj, created = self.get_or_create_testitem()
56 self.assertEqual(created, True, "the object was already there?")
57 self.assertIsInstance(obj, self.model, "object not correct model!?")
59 def test_name(self):
60 self.assertEqual(self.testitem.name, self.teststring, "name not correct")
62 def test___str__(self):
63 self.assertEqual(
64 "%s" % (self.teststring),
65 "%s" % (self.testitem.name),
66 "string representation not correct",
67 )
69 def test_absolute_url(self):
70 self.assertEqual(
71 "%s" % (self.testitem.get_absolute_url()),
72 "%s" % (reverse("%s:detail" % app_label, kwargs={"pk": self.testitem.pk})),
73 "absolute url not built correctly",
74 )