Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import unittest
- from project.factory.paint_factory import PaintFactory
- class PaintFactoryTests(unittest.TestCase):
- def setUp(self):
- self.factory = PaintFactory('Test Name', 100)
- def test_init(self):
- self.assertEqual(self.factory.name, 'Test Name')
- self.assertEqual(self.factory.capacity, 100)
- self.assertEqual(len(self.factory.ingredients), 0)
- self.assertIsInstance(self.factory.ingredients, dict)
- def test_add_ingredient(self):
- with self.assertRaises(TypeError) as context:
- self.factory.add_ingredient('purple', 2)
- actual = str(context.exception)
- expected = f"Ingredient of type purple not allowed in {self.factory.__class__.__name__}"
- self.assertEqual(actual, expected)
- with self.assertRaises(ValueError) as context:
- self.factory.add_ingredient('white', 101)
- actual = str(context.exception)
- expected = 'Not enough space in factory'
- self.assertEqual(actual, expected)
- self.factory.add_ingredient('white', 10)
- self.assertEqual(len(self.factory.ingredients), 1)
- self.assertEqual(self.factory.products, {'white': 10})
- self.factory.add_ingredient('red', 15)
- self.assertEqual(len(self.factory.ingredients), 2)
- self.assertEqual(self.factory.products, {'white': 10, 'red': 15})
- def test_remove_ingredient(self):
- self.factory.add_ingredient('white', 10)
- self.factory.add_ingredient('red', 15)
- with self.assertRaises(KeyError) as context:
- self.factory.remove_ingredient('green', 5)
- actual = str(context.exception)
- expected = "No such ingredient in the factory"
- self.assertEqual(actual, expected)
- with self.assertRaises(ValueError) as context:
- self.factory.remove_ingredient('red', 20)
- actual = str(context.exception)
- expected = 'Ingredients quantity cannot be less than zero'
- self.assertEqual(actual, expected)
- self.factory.remove_ingredient('red', 5)
- self.assertEqual(self.factory.ingredients['red'], 10)
- self.assertEqual(self.factory.products, {'white': 10, 'red': 10})
- def test_products(self):
- self.assertEqual(len(self.factory.products), 0)
- self.assertEqual(self.factory.ingredients, {})
- if __name__ == '__main__':
- unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement