Ejemplo n.º 1
0
class TestRoom(TestCase):
    def setUp(self):
        self.room = Room("Johson", 1800, 4)

    def test_init(self):
        self.assertEqual("Johson", self.room.family_name)
        self.assertEqual(1800, self.room.budget)
        self.assertEqual(4, self.room.members_count)
        self.assertEqual([], self.room.children)
        self.assertEqual(0, self.room.expenses)

    def test_set_expenses(self):
        self.room.expenses = 20
        self.assertEqual(20, self.room.expenses)

    def test_set_expenses_raises(self):
        with self.assertRaises(ValueError) as ex:
            self.room.expenses = -5

        self.assertEqual("Expenses cannot be negative", str(ex.exception))

    def test_calculate_expenses_with_children(self):
        fridge = [Fridge()]
        child = [Child(2, 1, 2, 3)]
        self.room.calculate_expenses(fridge, child)
        self.assertEqual(276, self.room.expenses)

    def test_calculate_expenses_without_children(self):
        fridge = [Fridge()]

        self.room.calculate_expenses(fridge)
        self.assertEqual(36, self.room.expenses)
Ejemplo n.º 2
0
class TestsRoom(unittest.TestCase):
    def setUp(self):
        self.room = Room('room_name', 1000, 4)

    def test_class_attributes_existence_upon_initialization(self):
        self.assertEqual(self.room.family_name, 'room_name')
        self.assertEqual(self.room.budget, 1000)
        self.assertEqual(self.room.members_count, 4)
        self.assertEqual(self.room.children, [])

    def test_expenses_is_property(self):
        self.assertEqual(self.room.expenses, 0)

    def test_set_expenses_to_positive_value_OK(self):
        self.room.expenses = 10
        self.assertEqual(self.room.expenses, 10)

    def test_set_expenses_to_negative_value_NOK(self):
        with self.assertRaises(ValueError) as exc:
            self.room.expenses = -10
        self.assertEqual(str(exc.exception), "Expenses cannot be negative")

    def test_calculate_expenses_with_zero_arguments(self):
        lst = []
        self.room.calculate_expenses(*lst)
        self.assertEqual(self.room.expenses, 0)
Ejemplo n.º 3
0
class TestRoom(unittest.TestCase):
    def setUp(self):
        self.room = Room('name', 1000, 3)

    def test_init(self):
        self.assertEqual('name', self.room.family_name)
        self.assertEqual(1000, self.room.budget)
        self.assertEqual(3, self.room.members_count)
        self.assertEqual(0, len(self.room.children))
        self.assertEqual(0, self.room.expenses)

    def test_expenses_setter_raises(self):
        with self.assertRaises(ValueError) as ex:
            self.room.expenses = -25
        self.assertEqual("Expenses cannot be negative", str(ex.exception))
        self.assertIsNotNone(ex.exception)

    def test_expenses_setter(self):
        self.assertEqual(0, self.room.expenses)
        self.room.expenses = 25
        self.assertEqual(25, self.room.expenses)

    def test_calculate_expenses(self):
        self.assertEqual(0, self.room.expenses)
        tv = TV()
        appliances = [tv]
        self.room.calculate_expenses(appliances)
        self.assertEqual(45, self.room.expenses)
Ejemplo n.º 4
0
class TestRoom(unittest.TestCase):
    def setUp(self) -> None:
        self.room = Room('Lindemann', 450, 1)

    def test_init__expect_attrs_set(self) -> None:
        self.assertEqual(self.room.family_name, 'Lindemann')
        self.assertEqual(self.room.budget, 450)
        self.assertEqual(self.room.members_count, 1)
        self.assertEqual(self.room.children, [])
        self.assertTrue(hasattr(self.room, 'expenses'))

    def test_setter_expenses__when_valid__expect_expenses_updates(
            self) -> None:
        self.room.expenses = 45
        self.assertEqual(self.room.expenses, 45)

    def test_setter_expenses__when_invalid__expect_exception(self) -> None:
        with self.assertRaises(ValueError) as context:
            self.room.expenses = -30

        self.assertEqual(context.exception.args[0],
                         'Expenses cannot be negative')

    def test_calculate_expenses(self) -> None:
        appliances = [Appliance(10), Appliance(8)]
        appliances1 = [Appliance(8), Appliance(10)]
        self.room.calculate_expenses(appliances, appliances1)

        self.assertEqual(self.room.expenses, 1080)
Ejemplo n.º 5
0
class TestRoom(unittest.TestCase):

    def setUp(self):
        self.room = Room("Vatovi", 2000, 2)

    def test_room_init(self):
        self.assertEqual(self.room.family_name, "Vatovi")
        self.assertEqual(self.room.budget, 2000)
        self.assertEqual(self.room.members_count, 2)
        self.assertEqual(self.room.children, [])
        self.assertEqual(self.room.expenses, 0)

    def test_if_setter_set_the_expenses(self):
        self.room.expenses = 20
        self.assertEqual(self.room.expenses, 20)

    def test_room_setter_raises_exception(self):
        with self.assertRaises(ValueError, msg="Expenses cannot be negative") as context:
            self.room.expenses = -20
        self.assertEqual(context.msg, "Expenses cannot be negative")

    def test_room_calculate_expenses(self):
        appliances = [TV(), Laptop(), Fridge()] * self.room.members_count
        child1 = Child(5, 2, 3, 1)
        children = [child1]
        self.room.calculate_expenses(appliances, children)
        self.assertEqual(self.room.expenses, 552)
Ejemplo n.º 6
0
class TestRoom(TestCase):
    def setUp(self):
        self.room = Room("Test", 100, 2)

    def test_init(self):
        self.assertEqual("Test", self.room.family_name)
        self.assertEqual(100, self.room.budget)
        self.assertEqual(2, self.room.members_count)
        self.assertEqual([], self.room.children)
        self.assertEqual(0, self.room.expenses)

    def test_set_expenses_negative_number_raises_exception(self):
        with self.assertRaises(ValueError) as ex:
            self.room.expenses = -2
        self.assertEqual("Expenses cannot be negative", str(ex.exception))

    def test_set_expenses_positive_number(self):
        self.room.expenses = 3
        self.assertEqual(3, self.room.expenses)

    def test_calculate_expenses(self):
        self.assertEqual(0, self.room.expenses)
        c1 = Child(5, 4, 1)
        expected = 300
        self.room.calculate_expenses([c1])
        self.assertEqual(expected, self.room.expenses)
Ejemplo n.º 7
0
class RoomTests(unittest.TestCase):
    def setUp(self):
        self.room = Room("Smith", 1000, 3)

    def test_room_init_expect_attributes_to_be_set(self):
        self.assertEqual("Smith", self.room.family_name)
        self.assertEqual(1000, self.room.budget)
        self.assertEqual(3, self.room.members_count)
        self.assertEqual([], self.room.children)
        self.assertEqual(0, self.room.expenses)

    def test_room_expenses_setter__when_value_is_less_than_zero_expect_value_error(
            self):
        with self.assertRaises(ValueError) as err:
            self.room.expenses = -20
        self.assertEqual("Expenses cannot be negative", str(err.exception))

    def test_room_calculate_expenses__expect_calculation_of_all_costs_for_one_month(
            self):
        self.room.children = [Child(5, 5, 5), Child(4, 6, 2)]
        appliances = [Fridge(), Laptop(), Stove(), TV()]
        self.room.calculate_expenses(self.room.children, appliances)

        expected_cost = 942
        actual_cost = self.room.expenses
        self.assertEqual(expected_cost, actual_cost)
Ejemplo n.º 8
0
class RoomTests(TestCaseBase):
    name = 'RoomName'
    budget = 123
    members_count = 4

    def setUp(self):
        self.room = Room(self.name, self.budget, self.members_count)

    def test__init__when_all_valid__expect_be_set(self):
        self.assertEqual(self.name, self.room.family_name)
        self.assertEqual(self.budget, self.room.budget)
        self.assertEqual(self.members_count, self.room.members_count)
        self.assertListEmpty(self.room.children)
        for attr in [
                "family_name", "budget", "members_count", "expenses",
                "children"
        ]:
            self.assertTrue(hasattr(self.room, attr))

    def test__expenses__when_positive__expect_to_set(self):
        self.room.expenses = 5

        self.assertEqual(5, self.room.expenses)

    def test__expenses__when_0__expect_to_set(self):
        self.room.expenses = 0

        self.assertEqual(0, self.room.expenses)

    def test__expenses__when_negative__expect_raise(self):
        with self.assertRaises(ValueError) as context:
            self.room.expenses = -5

        self.assertEqual('Expenses cannot be negative', str(context.exception))

    def test__calculate_expenses_when_zero_consumers__expect_expenses_to_be_0(
            self):
        self.room.calculate_expenses([])
        self.assertEqual(0, self.room.expenses)

    def test__calculate_expenses_when_1_consumer__expect_expenses_to_be_correct(
            self):
        consumers = [Child(1, 2, 3, 4)]
        self.room.calculate_expenses(consumers)

        self.assertEqual(consumers[0].get_monthly_expense(),
                         self.room.expenses)

    def test__calculate_expenses_when_two_consumers__expect_expenses_to_be_correct(
            self):
        appliances = [Child(1, 2, 3, 4)]
        children = [Child(5, 1, 2, 3)]

        self.room.calculate_expenses(appliances, children)
        expected = appliances[0].get_monthly_expense(
        ) + children[0].get_monthly_expense()

        self.assertEqual(expected, self.room.expenses)
Ejemplo n.º 9
0
class TestRoom(TestCase):
    name = 'Konst'
    budget = 800
    members_count = 2

    def setUp(self):
        self.room = Room(self.name, self.budget, self.members_count)

    def test_attributes_are_set(self):
        self.assertEqual(self.name, self.room.family_name)
        self.assertEqual(self.budget, self.room.budget)
        self.assertEqual(self.members_count, self.room.members_count)
        self.assertListEqual([], self.room.children)
        for attr in [
                "family_name", "budget", "members_count", "expenses",
                "children"
        ]:
            self.assertTrue(hasattr(self.room, attr))

    def test_expenses__set_positive_value(self):
        self.room.expenses = 50.00
        self.assertEqual(50, self.room.expenses)

    def test_expenses__set_0_value(self):
        self.room.expenses = 0
        self.assertEqual(0, self.room.expenses)

    def test_expenses__cannot_set_negative_value_raises(self):
        with self.assertRaises(ValueError) as ex:
            self.room.expenses = -50.00
        self.assertEqual("Expenses cannot be negative", str(ex.exception))

    def test_calculate_expenses_when_0_consumers(self):
        self.room.calculate_expenses([])
        self.assertEqual(0, self.room.expenses)

    def test_calculate_expenses_when_1_consumer(self):
        child = [Child(10, 5, 6)]
        self.room.calculate_expenses(child)

        self.assertEqual(child[0].get_monthly_expense(), self.room.expenses)

    def test_calculate_expenses_when_more_consumers(self):
        children = [Child(10, 5, 6), Child(5, 5, 5)]
        appliances = [Appliance(15)]
        self.room.calculate_expenses(children, appliances)

        expected = children[0].get_monthly_expense() + children[
            1].get_monthly_expense() + appliances[0].get_monthly_expense()

        self.assertEqual(expected, self.room.expenses)
Ejemplo n.º 10
0
class TestRoom(unittest.TestCase):
    family_name = 'TestRoom'
    budget = 500
    members_count = 2

    def setUp(self):
        self.room = Room(self.family_name, self.budget, self.members_count)

    def test_init_attributes__expect_to_be_ok(self):
        self.assertEqual(self.family_name, self.room.family_name)
        self.assertEqual(self.budget, self.room.budget)
        self.assertEqual(self.members_count, self.room.members_count)
        self.assertListEqual([], self.room.children)
        self.assertEqual(0, self.room.expenses)

    def test_expenses__when_positive__expect_to_return_expenses(self):
        self.room.expenses = 5

        self.assertEqual(5, self.room.expenses)

    def test_expenses__when_0__expect_to_return_expenses(self):
        self.room.expenses = 0

        self.assertEqual(0, self.room.expenses)

    def test_expenses__when_negative__expect_to_raise_exception(self):
        with self.assertRaises(ValueError) as e:
            self.room.expenses = -5

        self.assertEqual('Expenses cannot be negative', str(e.exception))

    def test_calculate_expenses__when_no_aplliances__expect_to_be_0(self):
        consumers = []
        self.room.calculate_expenses(consumers)
        self.assertEqual(0, self.room.expenses)

    def test_calculate_expenses__when_one_child__expect_to_calculate_them(self):
        consumers = [Child(5, 2, 2)]
        self.room.calculate_expenses(consumers)
        self.assertEqual(consumers[0].get_monthly_expense(), self.room.expenses)

    def test_calculate_expenses__when_one_child_and_one_appliance__expect_to_calculate_them(self):
        consumers = [Child(5, 2, 2), TV()]
        self.room.calculate_expenses(consumers)
        expect = consumers[0].get_monthly_expense() + consumers[1].get_monthly_expense()
        self.assertEqual(expect, self.room.expenses)
Ejemplo n.º 11
0
class TestRoom(unittest.TestCase):
    def setUp(self):
        self.room = Room('a', 1000.0, 2)

    def test_constructor(self):
        self.assertEqual(self.room.family_name, 'a')
        self.assertEqual(self.room.budget, 1000.0)
        self.assertEqual(self.room.members_count, 2)
        self.assertEqual(self.room.children, [])
        self.room.expenses = 500.0
        self.assertEqual(self.room.expenses, 500.0)

    def test_expenses_raises_error_if_negative(self):
        with self.assertRaises(ValueError):
            self.room.expenses = -100

    def test_calculate_expenses_calculates_correctly(self):
        c = Child(10.0, 10.0, 10.0)
        f = Fridge()
        children_list = [c]
        appliances_list = [f]
        self.assertEqual(
            self.room.calculate_expenses(children_list, appliances_list), 31.2)
Ejemplo n.º 12
0
class RoomTest(unittest.TestCase):
    def setUp(self) -> None:
        self.room = Room("Double", 100, 2)

    def test_can_be_create_an_instance(self):
        Room("Double", 100, 2)

    def test_attributes(self):
        self.assertEqual(self.room.family_name, "Double")
        self.assertEqual(self.room.budget, 100)
        self.assertEqual(self.room.members_count, 2)
        self.assertEqual(len(self.room.children), 0)

    def test_expenses_value_error(self):
        with self.assertRaises(ValueError) as exc:
            self.room.expenses = -10
        self.assertEqual(str(exc.exception), "Expenses cannot be negative")

    def test_expenses_correct_set(self):
        res = self.room.expenses = 10
        self.assertEqual(res, 10)

    def test_property_expenses(self):
        self.assertEqual(self.room.expenses, 0)

    def test_custom_calculate_expenses(self):
        self.children = [10, 10]
        self.assertEqual(self.room.calculate_expenses(self.room.children, self.room.appliances), 0)
        self.assertEqual(self.room._expenses, 0)

    def test_custom_str_enough_budget(self):
        res = repr(self.room)
        self.assertEqual(f"{self.room.family_name} paid {self.room.expenses + self.room.room_cost:.2f}$ and have {self.room.budget:.2f}$ left.\n", res)

    def test_custom_str_not_enough_budget(self):
        self.room.budget = -1
        self.assertEqual(repr(self.room), f"{self.room.family_name} does not have enough budget and must leave the hotel.\n")
Ejemplo n.º 13
0
 def test_calculate_expenses(self):
     child = Child(20)
     room_one = Room('Ivanovi', 1500, 2)
     room_one.calculate_expenses(child)
     self.assertEqual(room_one.expenses, 600)