def test_uninstall(self):
     hard = Hardware('h1', 'test', 100, 100)
     s1 = Software('win', 'Express', 10, 10)
     hard.install(s1)
     hard.uninstall(s1)
     self.assertEqual([], hard.software_components)
     self.assertListEqual([], hard.software_components)
class TestHardware(unittest.TestCase):
    def setUp(self):
        self.kompiutur = Hardware('Pentium', 'Heavy', 1000, 1000)

    def test_one(self):
        result = (self.kompiutur.name, self.kompiutur.type,
                  self.kompiutur.memory, self.kompiutur.capacity)
        expected = ('Pentium', 'Heavy', 1000, 1000)

        self.assertEqual(result, expected)

    def test_two(self):
        programa = Software('Test', 'Express', 2000, 2000)

        with self.assertRaises(Exception) as ex:
            self.kompiutur.install(programa)
        self.assertEqual(str(ex.exception), 'Software cannot be installed')

    def test_three(self):
        programa = Software('Test', 'Express', 5, 5)

        self.kompiutur.install(programa)
        self.kompiutur.uninstall(programa)

        self.assertListEqual([], self.kompiutur.software_components)
Esempio n. 3
0
class TestHardware(unittest.TestCase):
    def setUp(self) -> None:
        self.hardware = Hardware('name', 'type', 1000, 512)

    def test_init(self):
        self.assertEqual('name', self.hardware.name)
        self.assertEqual('type', self.hardware.type)
        self.assertEqual(1000, self.hardware.capacity)
        self.assertEqual(512, self.hardware.memory)
        self.assertListEqual([], self.hardware.software_components)

    def test_install_proper(self):
        software = ExpressSoftware('test',
                                   capacity_consumption=100,
                                   memory_consumption=100)
        self.hardware.install(software)
        self.assertListEqual([software], self.hardware.software_components)

    def test_install_raises(self):
        with self.assertRaises(Exception) as ex:
            software = ExpressSoftware('test',
                                       capacity_consumption=10000,
                                       memory_consumption=10000)
            self.hardware.install(software)
        self.assertEqual("Software cannot be installed", str(ex.exception))

    def test_uninstall(self):
        software = ExpressSoftware('test',
                                   capacity_consumption=100,
                                   memory_consumption=100)
        self.hardware.install(software)
        self.assertListEqual([software], self.hardware.software_components)
        self.hardware.uninstall(software)
        self.assertListEqual([], self.hardware.software_components)
Esempio n. 4
0
class TestHardware(unittest.TestCase):
    def setUp(self):
        self.hw = Hardware('NVIDIA', 'video card', 4, 4)

    def test_hardware_init_method(self):
        self.assertEqual(self.hw.name, 'NVIDIA')
        self.assertEqual(self.hw.type, 'video card')
        self.assertEqual(self.hw.capacity, 4)
        self.assertEqual(self.hw.memory, 4)

    def test_install_method_when_capacity_and_memory_not_enough_for_software_should_raises(
            self):
        sw = Software('Linux', 'os', 5, 4)
        with self.assertRaises(Exception) as ex:
            self.hw.install(sw)

        self.assertIsNotNone(str(ex.exception))

    def test_install_method_when_capacity_and_memory_enough(self):
        sw = Software('Linux', 'os', 4, 4)
        self.hw.install(sw)
        result = self.hw.software_components[0]
        expected = 'Linux'

        self.assertEqual(result.name, expected)

    def test_uninstall_method(self):
        sw = Software('Linux', 'os', 4, 4)
        self.hw.install(sw)
        self.hw.uninstall(sw)

        self.assertEqual(self.hw.software_components, [])
class TestHardware(unittest.TestCase):
    def setUp(self):
        self.hw = Hardware('name', 'type', 100, 1000)

    def test_init(self):
        self.assertEqual('name', self.hw.name)
        self.assertEqual('type', self.hw.type)
        self.assertEqual(100, self.hw.capacity)
        self.assertEqual(1000, self.hw.memory)
        self.assertListEqual([], self.hw.software_components)
        self.assertEqual(0, len(self.hw.software_components))

    def test_install_proper(self):
        sw = ExpressSoftware('test', 1, 1)
        self.hw.install(sw)
        self.assertIn(sw, self.hw.software_components)
        self.assertEqual(1, len(self.hw.software_components))

    def test_install_raises(self):
        sw = ExpressSoftware('test', 9999, 9999)
        with self.assertRaises(Exception) as ex:
            self.hw.install(sw)
        self.assertEqual("Software cannot be installed", str(ex.exception))

    def test_uninstall(self):
        sw = ExpressSoftware('test', 1, 1)
        self.hw.install(sw)
        self.hw.uninstall(sw)
        self.assertTrue(sw not in self.hw.software_components)
        self.assertEqual(0, len(self.hw.software_components))
class TestHardware(unittest.TestCase):
    def setUp(self):
        self.h = Hardware("Lenovo", "Power", 800, 32)
        self.s = Software("Win", "Light", 10, 20)
        self.e = Software("Win", "Express", 1000, 2000)

    def test_init(self):  # 0 test
        self.assertEqual(self.h.name, "Lenovo")
        self.assertEqual(self.h.type, "Power")
        self.assertEqual(self.h.capacity, 800)
        self.assertEqual(self.h.memory, 32)

    def test_empty_software_components(self):  # 1 test
        self.assertEqual(self.h.software_components, [])

    def test_add_to_software_components(self):  # 2 test
        self.h.install(self.s)
        self.assertEqual(self.h.software_components, [self.s])

    def test(self):
        self.h.install(self.s)  # 3 test
        self.assertEqual(self.h.software_components, [self.s])
        self.h.uninstall(self.s)
        self.assertEqual(self.h.software_components, [])

    def test_cannot_add_due_to_high_requirements(self):  # 4 test
        with self.assertRaises(Exception) as ex:
            self.h.install(self.e)
        self.assertEqual("Software cannot be installed", str(ex.exception))
        self.assertEqual(self.h.software_components, [])
class testHardware(unittest.TestCase):
    def setUp(self):
        self.hardware = Hardware("Intel", "Heavy", 100, 100)

    def test_hardware_initialized(self):
        self.assertEqual(self.hardware.name, "Intel")
        self.assertEqual(self.hardware.type, "Heavy")
        self.assertEqual(self.hardware.memory, 100)
        self.assertEqual(self.hardware.capacity, 100)
        self.assertEqual(self.hardware.software_components, [])

    def test_install_method_should_raise_exception(self):
        software = LightSoftware("Yes", 100, 200)
        with self.assertRaises(Exception) as cm:
            self.hardware.install(software)
        self.assertEqual(str(cm.exception), "Software cannot be installed")

    def test_install_method_should_add_components(self):
        software = LightSoftware("Yes", 10, 10)
        self.hardware.install(software)
        self.assertEqual(len(self.hardware.software_components), 1)

    def test_uninstall_method_delete_successfully(self):
        software = LightSoftware("Yes", 10, 20)
        self.hardware.install(software)
        self.hardware.uninstall(software)
        self.assertEqual(len(self.hardware.software_components), 0)

    def test_uninstall_method(self):
        software = LightSoftware("Yes", 1000000, 200000)
        self.hardware.install(software)
        self.hardware.uninstall(software)
        self.assertEqual(len(self.hardware.software_components), 0)
Esempio n. 8
0
class TestHardware(unittest.TestCase):
    def setUp(self):
        self.hw = Hardware("HDD", 'Power', 200, 200)

    def test_set_attr(self):
        self.assertEqual(self.hw.name, 'HDD')
        self.assertEqual(self.hw.type, 'Power')
        self.assertEqual(self.hw.capacity, 200)
        self.assertEqual(self.hw.memory, 200)
        self.assertEqual(len(self.hw.software_components), 0)

    def test_install_raises(self):
        with self.assertRaises(Exception) as ex:
            sw = Software('Desktop', 'Light', 3000, 1000)
            self.hw.install(sw)
        self.assertEqual(str(ex.exception), "Software cannot be installed")

    def test_install_sw(self):
        sw = Software('Desktop', 'Light', 100, 100)
        self.hw.install(sw)
        self.assertEqual(self.hw.software_components, [sw])

    def test_uninstall_sw(self):
        sw = Software('Desktop', 'Light', 100, 100)
        self.hw.install(sw)
        self.hw.uninstall(sw)
        self.assertEqual(len(self.hw.software_components), 0)
Esempio n. 9
0
class TestHardware(unittest.TestCase):
    def setUp(self):
        self.hardware = Hardware(name='HDD',
                                 type='PowerHardware',
                                 capacity=200,
                                 memory=200)
        self.software = Software("HDD", "LightSoftware", 0, 10)

    def test_hardware_if_all_attributes_are_set(self):
        self.assertEqual('HDD', self.hardware.name)
        self.assertEqual('PowerHardware', self.hardware.type)
        self.assertEqual(200, self.hardware.capacity)
        self.assertEqual(200, self.hardware.memory)

    def test_hardware_install_if_there_is_enough_capacity_and_memory(self):
        self.hardware.install(self.software)
        self.assertTrue(self.software in self.hardware.software_components)

    def test_hardware_install_if_there_is_NOT_enough_capacity_and_memory(self):
        self.software.memory_consumption = 250
        with self.assertRaises(Exception) as ex:
            self.hardware.install(self.software)
        self.assertEqual('Software cannot be installed', str(ex.exception))

    def test_hardware_uninstall_if_software_is_in_software_components(self):
        self.hardware.install(self.software)
        self.assertTrue(self.software in self.hardware.software_components)
        self.hardware.uninstall(self.software)
        self.assertTrue(self.software not in self.hardware.software_components)
Esempio n. 10
0
class TestHardware(unittest.TestCase):
    def setUp(self) -> None:
        self.hardware = Hardware("SSD", "Light", 1000, 1000)

    def test_init(self):
        self.assertEqual("SSD", self.hardware.name)
        self.assertEqual("Light", self.hardware.type)
        self.assertEqual(1000, self.hardware.capacity)
        self.assertEqual(1000, self.hardware.memory)

    def test_install(self):
        self.assertEqual([], self.hardware.software_components)
        software = Software("Mozilla", "browser", 200, 200)
        self.hardware.install(software)
        self.assertEqual([software], self.hardware.software_components)

    def test_install_raises_error(self):
        with self.assertRaises(Exception) as e:
            software1 = Software("Ciberpunk 2077", "game", 2000, 500)
            self.hardware.install(software1)
        self.assertEqual("Software cannot be installed", str(e.exception))

    def test_uninstall(self):
        software = Software("Mozilla", "browser", 200, 200)
        self.hardware.install(software)
        self.hardware.uninstall(software)
        self.assertEqual([], self.hardware.software_components)
Esempio n. 11
0
class TestHardware(unittest.TestCase):
    def setUp(self):
        self.hardware = Hardware("Intel", "Power", 100, 200)

    def test_init(self):
        self.assertEqual("Intel", self.hardware.name)
        self.assertEqual("Power", self.hardware.type)
        self.assertEqual(100, self.hardware.capacity)
        self.assertEqual(200, self.hardware.memory)
        self.assertEqual([], self.hardware.software_components)

    def test_install_valid(self):
        software = ExpressSoftware("Nero", 20, 50)
        self.hardware.install(software)
        self.assertEqual([software], self.hardware.software_components)

    def test_install_dont_have_memory_and_capacity(self):
        software = ExpressSoftware("Nero", 150, 250)
        with self.assertRaises(Exception) as ex:
            self.hardware.install(software)

        self.assertEqual("Software cannot be installed", str(ex.exception))
        self.assertEqual([], self.hardware.software_components)

    def test_uninstall(self):
        software = ExpressSoftware("Nero", 20, 50)
        self.hardware.software_components = [software]
        self.assertEqual([software], self.hardware.software_components)
        self.hardware.uninstall(software)
        self.assertEqual([], self.hardware.software_components)
Esempio n. 12
0
class TestHardware(unittest.TestCase):
    def setUp(self) -> None:
        self.hw = Hardware('hw', "Heavy", 100, 100)

    def test_init_state(self):
        self.assertEqual('hw', self.hw.name)
        self.assertEqual('Heavy', self.hw.type)
        self.assertEqual(100, self.hw.capacity)
        self.assertEqual(100, self.hw.memory)
        self.assertEqual([], self.hw.software_components)

    def test_install_sw_successfully(self):
        sw = Software('name','Light', 20, 20)
        self.hw.install(sw)
        self.assertEqual([sw], self.hw.software_components)

    def test_install_sw_unsuccessful(self):
        sw = Software('name', 'Light', 110, 20)
        with self.assertRaises(Exception) as exc1:
            self.hw.install(sw)
        self.assertEqual('Software cannot be installed', str(exc1.exception))
        sw1 = Software('name', 'Light', 20, 120)
        with self.assertRaises(Exception) as exc2:
            self.hw.install(sw1)
        self.assertEqual('Software cannot be installed', str(exc2.exception))

    def test_uninstall_sw_successful(self):
        sw = Software('name', 'Light', 20, 20)
        self.hw.install(sw)
        self.assertEqual([sw], self.hw.software_components)
        self.hw.uninstall(sw)
        self.assertEqual([], self.hw.software_components)
Esempio n. 13
0
class TestHardware(unittest.TestCase):
    def setUp(self):
        self.hardware = Hardware('Test', 'Power', 100, 100)

    def test_correct_initialization(self):
        self.assertEqual(self.hardware.name, 'Test')
        self.assertEqual(self.hardware.type, 'Power')
        self.assertEqual(self.hardware.capacity, 100)
        self.assertEqual(self.hardware.memory, 100)
        self.assertEqual(self.hardware.software_components, [])

    def test_install_should_add_software_to_the_software_components(self):
        software = Software('Windows', 'Light', 50, 50)
        self.hardware.install(software)
        self.assertEqual(len(self.hardware.software_components), 1)
        # self.assertEqual(len(self.hardware.software_components), 1)

    def test_install_should_raise_error_if_capacity_or_memory_are_more_than_the_hardware_ones(
            self):
        software = Software('Windows', 'OS', 150, 150)

        with self.assertRaises(Exception) as cm:
            self.hardware.install(software)
        self.assertEqual(str(cm.exception), "Software cannot be installed")

    def test_uninstall_should_remove_software_from_the_software_components(
            self):
        software = Software('Windows', 'OS', 25, 25)
        self.hardware.install(software)
        self.hardware.uninstall(software)
        self.assertEqual(len(self.hardware.software_components), 0)
Esempio n. 14
0
 def test_uninstall(self):
     hw = Hardware('name', 'type', 1000, 512)
     sw = ExpressSoftware('test', 100, 100)
     hw.install(sw)
     self.assertEqual(1, len(hw.software_components))
     hw.uninstall(sw)
     self.assertEqual(0, len(hw.software_components))
Esempio n. 15
0
class HardwareTest(unittest.TestCase):
    def setUp(self):
        self.hardware = Hardware('Hardware 1', 'Heavy', 500, 500)

    def test_attributes(self):
        self.assertEqual('Hardware 1', self.hardware.name)
        self.assertEqual('Heavy', self.hardware.type)
        self.assertEqual(500, self.hardware.memory)
        self.assertEqual(500, self.hardware.capacity)
        self.assertEqual([], self.hardware.software_components)

    def test_install__expect_success(self):
        software = ExpressSoftware('Express', 200, 100)
        self.hardware.install(software)
        self.assertEqual(1, len(self.hardware.software_components))

    def test_install__expect_raise__exception(self):
        software = ExpressSoftware('Express', 300, 300)
        with self.assertRaises(Exception) as ex:
            self.hardware.install(software)
        self.assertEqual('Software cannot be installed', str(ex.exception))

    def test_uninstall__when_software_in_components__expect_to_uninstall_it(
            self):
        software = ExpressSoftware('Express', 200, 100)
        self.hardware.install(software)
        self.assertEqual(1, len(self.hardware.software_components))
        self.hardware.uninstall(software)
        self.assertEqual([], self.hardware.software_components)
Esempio n. 16
0
class TestHardware(unittest.TestCase):
    # def setUp(self):
    #     self.heavy_hd = Hardware("tejuk", "Heavy", 100, 100)
    #     self.power_hd = Hardware("silen", "Power", 300, 300)
    #     self.software = Software('Sf', 'Light', 200, 200)
    #
    # def test_attributes(self):
    #     for attr in ['name', 'type', 'capacity', 'memory']:
    #         self.assertTrue(hasattr(self.heavy_hd, attr))
    #
    # def test_initialization(self):
    #     self.assertEqual('tejuk', self.heavy_hd.name)
    #     self.assertEqual('Heavy', self.heavy_hd.type)
    #     self.assertEqual(100, self.heavy_hd.capacity)
    #     self.assertEqual(100, self.heavy_hd.memory)
    #     self.assertEqual([], self.heavy_hd.software_components)
    #
    #     self.assertEqual('silen', self.power_hd.name)
    #     self.assertEqual('Power', self.power_hd.type)
    #     self.assertEqual(300, self.power_hd.capacity)
    #     self.assertEqual(300, self.power_hd.memory)
    #     self.assertEqual([], self.power_hd.software_components)
    #
    # # def test_installation_should_be_successful(self):
    # #     self.power_hd.install(self.software)
    # #     self.assertEqual(1, len(self.power_hd.software_components))
    #
    # def test_installation_should_raise_exception(self):
    #     with self.assertRaises(Exception) as exc:
    #         self.heavy_hd.install(self.software)
    #         self.assertEqual("Software cannot be installed", exc)
    #
    # def test_uninstalling_software(self):
    #     self.power_hd.install(self.software)
    #     self.assertEqual(1, len(self.power_hd.software_components))
    #     self.power_hd.uninstall(self.software)
    #     self.assertEqual(0, len(self.power_hd.software_components))

    def setUp(self):
        self.hw = Hardware('Test hw', 'Power', 100, 50)
        self.sw = Software('Test sw', 'Light', 20, 10)

    def test_init_when_valid_arguments_should_implement(self):
        self.assertEqual(self.hw.name, 'Test hw')
        self.assertEqual(self.hw.type, 'Power')
        self.assertEqual(self.hw.capacity, 100)
        self.assertEqual(self.hw.memory, 50)
        self.assertEqual(self.hw.software_components, [])

    def test_install_when_not_enough_memory_or_capacity_should_raise_exception(
            self):
        self.sw = Software('Test sw', 'Light', 101, 51)
        with self.assertRaises(Exception) as ex:
            self.hw.install(self.sw)
        self.assertEqual(str(ex.exception), 'Software cannot be installed')

    def test_uninstall_when_software_in_components_should_remove_it(self):
        self.hw.software_components.append(self.sw)
        self.hw.uninstall(self.sw)
        self.assertEqual(self.hw.software_components, [])
 def test_uninstall_method(self):
     hardware = Hardware('test', 'SSD', 512, 16)
     software = LightSoftware('test', 10, 5)
     hardware.install(software)
     self.assertEqual(len(hardware.software_components), 1)
     hardware.uninstall(software)
     self.assertEqual(len(hardware.software_components), 0)
Esempio n. 18
0
class HardwareTests(TestCase):
    def setUp(self) -> None:
        self.hardware = Hardware("SSD", "Heavy", 500, 500)

    def test_init_attrs_are_set(self):
        self.assertEqual("SSD", self.hardware.name)
        self.assertEqual("Heavy", self.hardware.type)
        self.assertEqual(500, self.hardware.capacity)
        self.assertEqual(500, self.hardware.memory)
        self.assertEqual([], self.hardware.software_components)

    def test_hardware__no_memory_when_software_is_installed__expect_exception(
            self):
        software = Software("Win10", "Light", 501, 501)
        with self.assertRaises(Exception) as context:
            self.hardware.install(software)
        self.assertEqual("Software cannot be installed",
                         str(context.exception))

    def test_hardware_equal_capacity_and_memory_when_software_is_installed(
            self):
        software = Software("Win10", "Light", 500, 500)
        self.hardware.install(software)
        self.assertEqual(1, len(self.hardware.software_components))

    def test_hardware_uninstall__expect_software_to_be_removed_from_software_components(
            self):
        software = Software("Win10", "Light", 500, 500)
        self.hardware.install(software)
        self.hardware.uninstall(software)
        self.assertEqual([], self.hardware.software_components)
Esempio n. 19
0
class TestHardware(unittest.TestCase):
    def setUp(self):
        self.hardware = Hardware('NVD', 'type', 10, 10)

    def test_init(self):
        self.assertEqual('NVD', self.hardware.name)
        self.assertEqual('type', self.hardware.type)
        self.assertEqual(10, self.hardware.capacity)
        self.assertEqual(10, self.hardware.memory)
        self.assertEqual([], self.hardware.software_components)

    def test_install(self):
        software = Software('MS', 'type', 5, 5)
        self.hardware.install(software)
        self.assertEqual(self.hardware.software_components, [software])

        software = Software('MS', 'type', 15, 15)
        with self.assertRaises(Exception) as cm:
            self.hardware.install(software)
        self.assertEqual(str(cm.exception), "Software cannot be installed")

    def test_uninstall(self):
        software = Software('MS', 'type', 5, 5)
        self.hardware.install(software)
        self.assertEqual(self.hardware.software_components, [software])
        self.hardware.uninstall(software)
        self.assertEqual(self.hardware.software_components, [])
Esempio n. 20
0
 def release_software_component(hardware_name: str, software_name: str):
     software = [software for software in System._software if software_name == software.name]
     hardware = [hardware for hardware in System._hardware if hardware_name == hardware.name]
     if software and hardware:
         Hardware.uninstall(hardware[0], software[0])
         System._software.remove(software[0])
     else:
         return f"Some of the components do not exist"
Esempio n. 21
0
class TestHardware(unittest.TestCase):
    def test_hhardware__init__(self):
        self.hardware = Hardware("Server", "Heavy", 5000, 3500)
        self.assertEqual(self.hardware.name, "Server")
        self.assertEqual(self.hardware.type, "Heavy")
        self.assertEqual(self.hardware.capacity, 5000)
        self.assertEqual(self.hardware.memory, 3500)
        self.assertEqual(self.hardware.software_components, [])

    def test_phardware__init__(self):
        self.hardware = Hardware("Docking Station", "Power", 3000, 5500)
        self.assertEqual(self.hardware.name, "Docking Station")
        self.assertEqual(self.hardware.type, "Power")
        self.assertEqual(self.hardware.capacity, 3000)
        self.assertEqual(self.hardware.memory, 5500)
        self.assertEqual(self.hardware.software_components, [])

    def test_install_method_raising_exception_memory_failure(
            self):  # Memory failure
        self.hardware = Hardware("Server", "Heavy", 50, 200)
        self.software = Software("Linux", "Express", 100, 200)
        with self.assertRaises(Exception,
                               msg="Software cannot be installed") as exc:
            self.hardware.install(self.software)

        self.assertEqual(str(exc.exception), exc.msg)

    def test_install_method_raising_exception_capacity_failure(
            self):  # Capacity failure
        self.hardware = Hardware("Server", "Heavy", 250, 100)
        self.software = Software("Linux", "Express", 100, 200)
        with self.assertRaises(Exception,
                               msg="Software cannot be installed") as exc:
            self.hardware.install(self.software)

        self.assertEqual(str(exc.exception), exc.msg)

    def test_successful_software_install(self):
        self.hardware = Hardware("Server", "Heavy", 250, 200)
        self.software = Software("Linux", "Express", 50, 100)
        self.hardware.install(self.software)
        self.assertEqual(self.hardware.software_components, [self.software])

    def test_uninstall_software(self):
        self.hardware = Hardware("Server", "Heavy", 250, 200)
        self.software = Software("Linux", "Express", 50, 100)
        self.hardware.install(self.software)
        self.hardware.uninstall(self.software)
        self.assertEqual(self.hardware.software_components, [])
class TestHardware(unittest.TestCase):
    def setUp(self):
        self.hardware = Hardware("H", "Heavy", 100, 100)
        self.software = ExpressSoftware("S", 10, 10)

    def test__init(self):
        self.assertEqual(self.hardware.name, "H")
        self.assertEqual(self.hardware.type, "Heavy")
        self.assertEqual(self.hardware.capacity, 100)
        self.assertEqual(self.hardware.memory, 100)
        self.assertEqual(self.hardware.software_components, [])

    def test__prop_available_memory__return_result(self):
        self.hardware.install(self.software)
        self.assertEqual(self.hardware.available_memory, 80)

    def test__prop_available_capacity__return_result(self):
        self.hardware.install(self.software)
        self.assertEqual(self.hardware.available_capacity, 90)

    def test__install_software_without_enough_capacity__raise_exception(self):
        self.hardware.capacity = 100
        self.software.capacity_consumption = 110
        with self.assertRaises(Exception) as exception:
            self.hardware.install(self.software)
        expected_msg = str(exception.exception)
        actual_msg = "Software cannot be installed"
        self.assertEqual(actual_msg, expected_msg)

    def test__install_software_without_enough_memory__raise_exception(self):
        self.hardware.memory = 100
        self.software.memory_consumption = 110
        with self.assertRaises(Exception) as exception:
            self.hardware.install(self.software)
        expected_msg = str(exception.exception)
        actual_msg = "Software cannot be installed"
        self.assertEqual(actual_msg, expected_msg)

    def test__install_software_with_enough_capacity_and_memory__add_software_in_software_components(
            self):
        self.hardware.install(self.software)
        self.assertIn(self.software, self.hardware.software_components)

    def test__uninstall_software__remove_software_from_software_components(
            self):
        self.hardware.install(self.software)
        self.assertIn(self.software, self.hardware.software_components)
        self.hardware.uninstall(self.software)
        self.assertNotIn(self.software, self.hardware.software_components)
Esempio n. 23
0
class TestHardware(unittest.TestCase):
    def setUp(self) -> None:
        self.hardware = Hardware('SSD', 'Storage', 512, 128)

    def test_init_method__expect_correct_initialization(self) -> None:
        self.assertEqual(self.hardware.name, 'SSD')
        self.assertEqual(self.hardware.type, 'Storage')
        self.assertEqual(self.hardware.capacity, 512)
        self.assertEqual(self.hardware.memory, 128)
        self.assertEqual(self.hardware.software_components, [])

    def test_install__when_capacity_valid_and_memory_valid__expect_software_installed(
            self) -> None:
        software = Software('Manjaro', 'OS', 256, 64)
        self.hardware.install(software)
        self.assertEqual(self.hardware.software_components, [software])

    def test_install__when_capacity_invalid_and_memory_valid__expect_exception(
            self) -> None:
        software = Software('Manjaro', 'OS', 1024, 64)
        with self.assertRaises(Exception) as context:
            self.hardware.install(software)

        self.assertEqual(context.exception.args[0],
                         'Software cannot be installed')

    def test_install__when_capacity_valid_and_memory_invalid__expect_exception(
            self) -> None:
        software = Software('Manjaro', 'OS', 256, 256)
        with self.assertRaises(Exception) as context:
            self.hardware.install(software)

        self.assertEqual(context.exception.args[0],
                         'Software cannot be installed')

    def test_install__when_capacity_invalid_and_memory_invalid__expect_exception(
            self) -> None:
        software = Software('Manjaro', 'OS', 1024, 256)
        with self.assertRaises(Exception) as context:
            self.hardware.install(software)

        self.assertEqual(context.exception.args[0],
                         'Software cannot be installed')

    def test_uninstall__expect_software_uninstalled(self) -> None:
        software = Software('Manjaro', 'OS', 256, 64)
        self.hardware.install(software)
        self.hardware.uninstall(software)
        self.assertEqual(self.hardware.software_components, [])
Esempio n. 24
0
class TestHardware(unittest.TestCase):
    def setUp(self) -> None:
        self.hw = Hardware("Test", "Power", 100, 100)
        self.hw2 = Hardware("Test2", "Hevy", 200, 200)
        self.sw = ExpressSoftware("Sw", 10, 10)
        self.sw2 = ExpressSoftware("Sw1", 1, 1000)
        self.sw3 = ExpressSoftware("Sw2", 100000, 1)
        self.sw4 = ExpressSoftware("Sw3", 1000000, 1000000)

    def test_create_hardware(self):
        self.assertEqual(self.hw.name, "Test")
        self.assertEqual(self.hw.type, "Power")

    def test_create_ExpressSoftware(self):
        self.assertEqual(self.sw.name, "Sw")
        self.assertEqual(self.sw.memory_consumption, 20)
        self.assertEqual(self.sw.capacity_consumption, 10)

    def test_install(self):
        result = self.hw.install(self.sw)
        self.assertEqual(result, None)
        self.assertListEqual(self.hw.software_components, [self.sw])
        with self.assertRaises(Exception) as ex:
            self.hw.install(self.sw4)
        self.assertEqual(str(ex.exception), "Software cannot be installed")

    def test_uninstall(self):
        result1 = self.hw.install(self.sw)
        result = self.hw.uninstall(self.sw)
        self.assertEqual(result, None)
        self.assertListEqual(self.hw.software_components, [])
Esempio n. 25
0
class TestHardware(TestCase):
    def setUp(self):
        self.hardware = Hardware('Test hardware', 'Heavy', 100, 10)

    def test_init__expect_to_set_attributes_correct(self):
        self.assertEqual('Test hardware', self.hardware.name)
        self.assertEqual('Heavy', self.hardware.hard_type)
        self.assertEqual(100, self.hardware.capacity)
        self.assertEqual(10, self.hardware.memory)
        self.assertEqual([], self.hardware.software_components)

    def test_install__when_enough_memory_and_capacity__expect_to_add_it_to_the_list(
            self):
        software = LightSoftware('Test software', 5, 2)
        self.hardware.install(software)

        self.assertEqual(1, len(self.hardware.software_components))
        self.assertListEqual([software], self.hardware.software_components)

    def test_install__when_not_enough_memory_and_capacity__expect_exception(
            self):
        software = ExpressSoftware('Test ex software', 350, 500)

        with self.assertRaises(Exception) as ex:
            self.hardware.install(software)

        self.assertEqual("Software cannot be installed", str(ex.exception))

    def test_uninstall__when_software_exist__expect_to_remove_it_from_the_list(
            self):
        software = LightSoftware('Test software', 5, 2)
        self.hardware.install(software)

        self.assertEqual(1, len(self.hardware.software_components))

        self.hardware.uninstall(software)
        self.assertEqual(0, len(self.hardware.software_components))

    def test_uninstall__when_software_not_exist__expect_to_remove_it_from_the_list(
            self):
        software_l = LightSoftware('Test software', 5, 2)
        self.hardware.install(software_l)
        self.assertEqual(1, len(self.hardware.software_components))

        software_ex = ExpressSoftware('Test ex software', 350, 500)
        self.hardware.uninstall(software_ex)
        self.assertEqual(1, len(self.hardware.software_components))
Esempio n. 26
0
class TestHardware(TestCase):
    def setUp(self):
        self.hardware = Hardware("My name", "Heavy", 500, 500)

    def test_attributes_are_set(self):
        self.assertEqual("My name", self.hardware.name)
        self.assertEqual("Heavy", self.hardware.type)
        self.assertEqual(500, self.hardware.capacity)
        self.assertEqual(500, self.hardware.memory)
        self.assertEqual([], self.hardware.software_components)

    def test_hardware_has_no_memory_when_software_is_installed_raises(self):
        software = LightSoftware("Mozilla", 550, 600)
        with self.assertRaises(Exception) as ex:
            self.hardware.install(software)
        self.assertEqual("Software cannot be installed", str(ex.exception))

    def test_equal_capacity_and_memory_software_is_installed(self):
        software = LightSoftware("Mozilla", 200, 1000)
        self.hardware.install(software)
        self.assertEqual(1, len(self.hardware.software_components))

    def test_software_is_installed(self):
        software = LightSoftware("Mozilla", 200, 400)
        self.hardware.install(software)
        self.assertEqual(1, len(self.hardware.software_components))

    def test_uninstall_nonexisting_software(self):
        software = LightSoftware("Mozilla", 200, 400)
        self.assertEqual(0, len(self.hardware.software_components))
        self.hardware.uninstall(software)
        self.assertEqual(0, len(self.hardware.software_components))

        self.hardware.install(software)
        self.assertEqual(1, len(self.hardware.software_components))
        self.assertIn(software, self.hardware.software_components)

        software_2 = LightSoftware("Chrome", 300, 400)
        self.assertNotIn(software_2, self.hardware.software_components)
        self.assertEqual(1, len(self.hardware.software_components))
        self.hardware.uninstall(software_2)
        self.assertEqual(1, len(self.hardware.software_components))

    def test_uninstall_existing_software(self):
        software = LightSoftware("Mozilla", 100, 100)
        software_2 = LightSoftware("Chrome", 150, 100)
        self.hardware.install(software)
        self.hardware.install(software_2)

        self.hardware.uninstall(software)
        self.assertEqual(1, len(self.hardware.software_components))
        self.assertNotIn(software, self.hardware.software_components)

        self.hardware.uninstall(software_2)
        self.assertEqual(0, len(self.hardware.software_components))
        self.assertNotIn(software_2, self.hardware.software_components)
Esempio n. 27
0
class TestHardware(TestCase):
    def setUp(self):
        self.hardware = Hardware("TestHardware", "TestType", 10, 10)
        self.software = Software("TestSoftware", "TestType", 10, 10)

    def test_hardware_install__when_software_capacity_is_above_hardware_capacity__expept_exception(
            self):
        self.software.capacity_consumption += 1
        with self.assertRaises(Exception) as context:
            self.hardware.install(self.software)

        self.assertEqual("Software cannot be installed",
                         str(context.exception))

    def test_hardware_install__when_software_memory_is_above_hardware_memory__expept_exception(
            self):
        self.software.memory_consumption += 1
        with self.assertRaises(Exception) as context:
            self.hardware.install(self.software)

        self.assertEqual("Software cannot be installed",
                         str(context.exception))

    def test_hardware_install__when_software_memory_and_capacity_is_above_hardware_memory_and_capacity_expect_exception(
            self):
        self.software.memory_consumption += 1
        self.software.capacity_consumption += 1

        with self.assertRaises(Exception) as context:
            self.hardware.install(self.software)

        self.assertEqual("Software cannot be installed",
                         str(context.exception))

    def test_hardware_install__when_software_consumption_is_valid__expect_to_add_it_in_software_components(
            self):
        self.hardware.install(self.software)
        self.assertEqual([self.software], self.hardware.software_components)

    def test_hardware_uninstall__expect_software_to_be_removed_from_software_components(
            self):
        self.hardware.install(self.software)
        self.hardware.uninstall(self.software)
        self.assertEqual([], self.hardware.software_components)
Esempio n. 28
0
class TestHardware(TestCase):
    def setUp(self) -> None:
        self.hardware = Hardware('HDD', 'Heavy', 1000, 1000)

    def test_init_expect_correct_attrs(self):
        self.assertEqual('HDD', self.hardware.name)
        self.assertEqual('Heavy', self.hardware.type)
        self.assertEqual(1000, self.hardware.capacity)
        self.assertEqual(1000, self.hardware.memory)
        self.assertEqual([], self.hardware.software_components)

    def test_install__when_max_capacity_and_memory_usage__expect_installed(
            self):
        software = ExpressSoftware('Linux', 1000, 500)
        self.hardware.install(software)
        self.assertEqual(1, len(self.hardware.software_components))

    def test_install__when_low_capacity__expect_exception(self):
        software = ExpressSoftware('Linux', 1001, 500)
        with self.assertRaises(Exception) as ex:
            self.hardware.install(software)
        self.assertEqual('Software cannot be installed', str(ex.exception))

    def test_install__when_low_memory__expect_exception(self):
        software = ExpressSoftware('Linux', 1000, 501)
        with self.assertRaises(Exception) as ex:
            self.hardware.install(software)
        self.assertEqual('Software cannot be installed', str(ex.exception))

    def test_uninstall__when_software_in_list__expect_software_removerd(self):
        software = ExpressSoftware('Linux', 200, 200)
        self.hardware.install(software)
        self.assertEqual(1, len(self.hardware.software_components))
        self.hardware.uninstall(software)
        self.assertEqual(0, len(self.hardware.software_components))

    def test_uninstall__when_invalid_software__expect_NONE(self):
        software = ExpressSoftware('Linux', 200, 200)
        software2 = ExpressSoftware('Linux', 1, 1)
        self.hardware.install(software)
        self.assertEqual(1, len(self.hardware.software_components))
        self.assertIsNone(self.hardware.uninstall(software2))
        self.assertEqual(1, len(self.hardware.software_components))
Esempio n. 29
0
class TestHardware(unittest.TestCase):
    def setUp(self) -> None:
        self.test_hardware = Hardware('Test_name', 'Heavy', 100, 100)

    def test_init_hardware(self):
        attrs = ['name', 'type', 'capacity', 'memory', 'software_components']
        for attr in attrs:
            self.assertTrue(hasattr(self.test_hardware, attr))

        self.assertEqual('Test_name', self.test_hardware.name)
        self.assertEqual('Heavy', self.test_hardware.type)
        self.assertEqual(100, self.test_hardware.capacity)
        self.assertEqual(100, self.test_hardware.memory)
        self.assertEqual([], self.test_hardware.software_components)

    def test_hardware_install_with_valid_software_obj__should_add_it_to_software_components(
            self):
        light_software = Software('test', 'Light', 10, 10)
        test_software = Software('test_express', 'Express', 10, 10)
        self.test_hardware.install(light_software)
        self.assertEqual(1, len(self.test_hardware.software_components))
        self.test_hardware.install(test_software)
        self.assertEqual(2, len(self.test_hardware.software_components))

    def test_hardware_install_when_not_enough_memory__should_raise(self):
        light_software = Software('test', 'Light', 10, 1000)
        with self.assertRaises(Exception) as ex:
            self.test_hardware.install(light_software)

        self.assertEqual("Software cannot be installed", str(ex.exception))

    def test_hardware_install_when_not_enough_capacity__should_raise(self):
        light_software = Software('test', 'Light', 1000, 10)
        with self.assertRaises(Exception) as ex:
            self.test_hardware.install(light_software)

        self.assertEqual("Software cannot be installed", str(ex.exception))

    def test_hardware_uninstall__should_remove_from_software_components(self):
        light_software = Software('test', 'Light', 10, 10)
        self.test_hardware.install(light_software)
        self.test_hardware.uninstall(light_software)
        self.assertEqual(0, len(self.test_hardware.software_components))
Esempio n. 30
0
class TestHardware(unittest.TestCase):
    def setUp(self):
        self.hardware = Hardware("SSD", "Heavy", 100, 120)

    def test_set_attr(self):
        self.assertEqual(self.hardware.name, "SSD")
        self.assertEqual(self.hardware.type, "Heavy")
        self.assertEqual(self.hardware.memory, 120)
        self.assertEqual(self.hardware.capacity, 100)
        self.assertEqual(self.hardware.software_components, [])

    def test_successful_install(self):
        soft = Software("Skype", "Express", 60, 40)
        self.hardware.install(soft)
        self.assertEqual(len(self.hardware.software_components), 1)

    def test_unsuccessful_install(self):
        soft = Software("NotSkype", "Express", 200, 240)
        with self.assertRaises(Exception) as ex:
            self.hardware.install(soft)
            self.assertEqual(str(ex), "Software cannot be installed")

    def test_uninstall(self):
        soft = Software("Skype", "Express", 60, 40)
        self.hardware.install(soft)
        self.hardware.uninstall(soft)
        self.assertEqual(self.hardware.software_components, [])

    def test_unsuccessful_uninstall(self):
        soft = Software("Skype", "Express", 60, 40)
        softy = Software("Discord", "Express", 20, 20)
        self.hardware.install(soft)
        with self.assertRaises(Exception) as ex:
            self.hardware.uninstall(softy)
            self.assertEqual(str(ex), "Some of the components do not exist")

    def test_not_working_install_message(self):
        software = Software("Skype", "Express", 100, 10)
        self.hardware = Hardware("SSD", "Heavy", 10, 12)
        try:
            self.hardware.install(software)
        except Exception as ex:
            self.assertEqual(str(ex), "Software cannot be installed")