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

1from django.test import TransactionTestCase as TestCase 

2from django.urls import reverse 

3 

4from .models import Model 

5from clustersoftware.models import Model as ClustersoftwareModel 

6 

7from . import app_label 

8 

9from sm.utils import random_string, random_number 

10 

11from django.contrib.auth.models import User, Group 

12 

13import os 

14import django 

15 

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

17django.setup() 

18 

19 

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() 

32 

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()]) 

39 

40 self.clustersoftware = ClustersoftwareModel.objects.all().first() 

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

42 

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) 

50 

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

58 

59 def test_name(self): 

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

61 

62 def test___str__(self): 

63 self.assertEqual( 

64 "%s" % (self.teststring), 

65 "%s" % (self.testitem.name), 

66 "string representation not correct", 

67 ) 

68 

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 )