Advertisement
simeonshopov

PaintFactoryTests

Jul 23rd, 2020
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.38 KB | None | 0 0
  1. import unittest
  2.  
  3. from project.factory.paint_factory import PaintFactory
  4.  
  5.  
  6. class PaintFactoryTests(unittest.TestCase):
  7.     def setUp(self):
  8.         self.factory = PaintFactory('Test Name', 100)
  9.  
  10.     def test_init(self):
  11.         self.assertEqual(self.factory.name, 'Test Name')
  12.         self.assertEqual(self.factory.capacity, 100)
  13.         self.assertEqual(len(self.factory.ingredients), 0)
  14.         self.assertIsInstance(self.factory.ingredients, dict)
  15.  
  16.     def test_add_ingredient(self):
  17.         with self.assertRaises(TypeError) as context:
  18.             self.factory.add_ingredient('purple', 2)
  19.         actual = str(context.exception)
  20.         expected = f"Ingredient of type purple not allowed in {self.factory.__class__.__name__}"
  21.         self.assertEqual(actual, expected)
  22.  
  23.         with self.assertRaises(ValueError) as context:
  24.             self.factory.add_ingredient('white', 101)
  25.         actual = str(context.exception)
  26.         expected = 'Not enough space in factory'
  27.         self.assertEqual(actual, expected)
  28.  
  29.         self.factory.add_ingredient('white', 10)
  30.         self.assertEqual(len(self.factory.ingredients), 1)
  31.         self.assertEqual(self.factory.products, {'white': 10})
  32.         self.factory.add_ingredient('red', 15)
  33.         self.assertEqual(len(self.factory.ingredients), 2)
  34.         self.assertEqual(self.factory.products, {'white': 10, 'red': 15})
  35.  
  36.     def test_remove_ingredient(self):
  37.         self.factory.add_ingredient('white', 10)
  38.         self.factory.add_ingredient('red', 15)
  39.         with self.assertRaises(KeyError) as context:
  40.             self.factory.remove_ingredient('green', 5)
  41.         actual = str(context.exception)
  42.         expected = "No such ingredient in the factory"
  43.         self.assertEqual(actual, expected)
  44.         with self.assertRaises(ValueError) as context:
  45.             self.factory.remove_ingredient('red', 20)
  46.         actual = str(context.exception)
  47.         expected = 'Ingredients quantity cannot be less than zero'
  48.         self.assertEqual(actual, expected)
  49.         self.factory.remove_ingredient('red', 5)
  50.         self.assertEqual(self.factory.ingredients['red'], 10)
  51.         self.assertEqual(self.factory.products, {'white': 10, 'red': 10})
  52.  
  53.     def test_products(self):
  54.         self.assertEqual(len(self.factory.products), 0)
  55.         self.assertEqual(self.factory.ingredients, {})
  56.  
  57.  
  58. if __name__ == '__main__':
  59.     unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement