class BaseProviderTest(unittest.TestCase): def setUp(self): self.provider = BaseProvider() def test_get_cost(self): self.assertEqual(self.provider.get_cost(), 50) self.provider.cost = 40 self.assertEqual(self.provider.get_cost(), 40) def test_get_needs(self): with self.assertRaises(NotImplementedError): self.provider.get_needs() def test_get_provides(self): with self.assertRaises(NotImplementedError): self.provider.get_provides() def test_get_keys(self): with self.assertRaises(NotImplementedError): self.provider.get_keys() def test_provides(self): self.provider.get_provides = Mock(return_value=['attr1']) self.assertTrue(self.provider.provides('attr1')) self.assertFalse(self.provider.provides('attr2')) def test_get(self): self.provider.get_attr1 = Mock(return_value=['attr1']) self.assertEqual(self.provider.get('attr1', 'key'), ['attr1']) self.provider.get_attr1.assert_called_once_with('key') with self.assertRaises(NotImplementedError): self.provider.get('attr2', 'key') def test_repr(self): self.provider.name = 'test provider' self.assertEqual(str(self.provider), 'test provider') def test_can_load(self): self.provider.get_needs = Mock(return_value=['attr1']) self.assertTrue(self.provider.can_load('attr1')) self.assertFalse(self.provider.can_load('attr2')) self.provider.get_needs = Mock(return_value=['attr1', ['attr2', 'attr3']]) self.assertTrue(self.provider.can_load('attr1')) self.assertTrue(self.provider.can_load(['attr2', 'attr3'])) self.assertTrue(self.provider.can_load(['attr1', 'attr3'])) self.assertFalse(self.provider.can_load(['attr3'])) def test_laod(self): self.provider.load_settings = Mock() self.provider.load() self.provider.load_settings.assert_called_once_with()
def make_provider(name, needs=None, provides=None, cost=50): if not needs: needs = [] if not provides: provides = [] provider = BaseProvider() provider.name = name provider.get_provides = Mock(return_value=provides) provider.get_needs = Mock(return_value=needs) provider.get_cost = Mock(return_value=cost) return provider