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

1from django.test import TransactionTestCase as TestCase 

2 

3from .models import Model 

4from vendor.models import Model as VendorModel 

5from . import app_label 

6 

7from sm.utils import random_string 

8 

9import os 

10import django 

11 

12os.environ["DJANGO_SETTINGS_MODULE"] = "sm.settings" 

13django.setup() 

14 

15 

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 

24 

25 def setUp(self): 

26 self.vendor = VendorModel.objects.all().first() 

27 self.testitem, created = self.get_or_create_testitem() 

28 

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) 

35 

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!?") 

43 

44 def test_name(self): 

45 self.assertEqual(self.testitem.name, self.teststring, "name not correct") 

46 

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 ) 

53 

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 ) 

60 

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)