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

1from django.test import TransactionTestCase as TestCase 

2from django.urls import reverse 

3 

4from .models import Model 

5from vendor.models import Model as VendorModel 

6 

7from . import app_label 

8 

9from sm.utils import random_string, random_number 

10 

11import os 

12import django 

13 

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

15django.setup() 

16 

17 

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 

27 

28 def setUp(self): 

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

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

31 

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) 

39 

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

47 

48 def test_version(self): 

49 self.assertEqual(self.testitem.version, self.testversion, "version not correct") 

50 

51 def test_name(self): 

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

53 

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 ) 

61 

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 )