75 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from django.test import TestCase
 | 
						|
 | 
						|
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)
 |