75 lines
2.5 KiB
Python
75 lines
2.5 KiB
Python
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)
|