from django.test import TestCase from model_mommy import mommy from django.core.management import call_command from .models import VirtualMachineType class VirtualMachineTypeModelTest(TestCase): def setUp(self): self.HETZNER_NUG_NAME = 'hetzner_nug' self.HETZNER_NAME = 'hetzner' self.HETZNER_RAID6_NAME = 'hetzner_raid6' self.HETZNER_GLUSTERFS_NAME = 'hetzner_glusterfs' self.BERN_NAME = 'bern' self.HETZNER_NUG_EXPECTED_PRICE = 79 self.HETZNER_EXPECTED_PRICE = 180 self.HETZNER_RAID6_EXPECTED_PRICE = 216 self.HETZNER_GLUSTERFS_EXPECTED_PRICE = 252 self.BERN_EXPECTED_PRICE = 202 call_command('create_vm_types') def test_calculate_price(self): # hetzner_nug specifications = { 'cores': 2, 'memory': 10, 'disk_size': 100 } vm_type = VirtualMachineType.objects.get(hosting_company=self.HETZNER_NUG_NAME) calculated_price = vm_type.calculate_price(specifications) self.assertEqual(calculated_price, self.HETZNER_NUG_EXPECTED_PRICE) # hetzner specifications = { 'cores': 2, 'memory': 10, 'disk_size': 100 } vm_type = VirtualMachineType.objects.get(hosting_company=self.HETZNER_NAME) calculated_price = vm_type.calculate_price(specifications) self.assertEqual(calculated_price, self.HETZNER_EXPECTED_PRICE) # hetzner_raid6 specifications = { 'cores': 2, 'memory': 10, 'disk_size': 100 } vm_type = VirtualMachineType.objects.get(hosting_company=self.HETZNER_RAID6_NAME) calculated_price = vm_type.calculate_price(specifications) self.assertEqual(calculated_price, self.HETZNER_RAID6_EXPECTED_PRICE) # hetzner_glusterfs specifications = { 'cores': 2, 'memory': 10, 'disk_size': 100 } vm_type = VirtualMachineType.objects.get(hosting_company=self.HETZNER_GLUSTERFS_NAME) calculated_price = vm_type.calculate_price(specifications) self.assertEqual(calculated_price, self.HETZNER_GLUSTERFS_EXPECTED_PRICE) # bern specifications = { 'cores': 2, 'memory': 10, 'disk_size': 100 } vm_type = VirtualMachineType.objects.get(hosting_company=self.BERN_NAME) calculated_price = vm_type.calculate_price(specifications) self.assertEqual(calculated_price, self.BERN_EXPECTED_PRICE)