Coverage for servermodel / test_models.py: 100%
36 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
3from .models import Model
4from vendor.models import Model as VendorModel
5from . import app_label
7from sm.utils import random_string
9import os
10import django
12os.environ["DJANGO_SETTINGS_MODULE"] = "sm.settings"
13django.setup()
16class Tester(TestCase):
17 model = Model
18 teststring = random_string()
19 fixtures = [
20 "%s/fixtures/01_initial.yaml" % "vendor",
21 "%s/fixtures/01_initial.yaml" % app_label,
22 ]
23 testitem = None
25 def setUp(self):
26 self.vendor = VendorModel.objects.all().first()
27 self.testitem, created = self.get_or_create_testitem()
29 def get_or_create_testitem(self):
30 self.testitem, created = self.model.objects.get_or_create(
31 name=self.teststring,
32 vendor=self.vendor,
33 )
34 return (self.testitem, created)
36 def test_create(self):
37 # Since we want to test if creation works, we
38 # need to manually prune the DB and create a testitem
39 self.model.objects.all().delete()
40 obj, created = self.get_or_create_testitem()
41 self.assertEqual(created, True, "the object was already there?")
42 self.assertIsInstance(obj, self.model, "object not correct model!?")
44 def test_name(self):
45 self.assertEqual(self.testitem.name, self.teststring, "name not correct")
47 def test_name___str__(self):
48 self.assertEqual(
49 "{} {}".format(self.vendor.name, self.teststring),
50 "{} {}".format(self.testitem.vendor.name, self.testitem.name),
51 "name not correct",
52 )
54 def test_get_absolute_url(self):
55 self.assertEqual(
56 "/%s/detail/%i/" % (app_label, self.testitem.id),
57 self.testitem.get_absolute_url(),
58 "reverse url not correct",
59 )
61 def test_delete(self):
62 res = self.testitem.delete()
63 self.assertEqual(res[0], 1)
64 self.assertTrue("%s.Model" % app_label in res[1])
65 self.assertEqual(res[1]["%s.Model" % app_label], 1)