def setUp(self): self.cache = PrefixCache() self.cache.data.update({ # noqa "415": Operator(name="AT&T", rates={"415": Decimal("1.00")}), "512": Operator(name="Verizon", rates={"512": Decimal("1.00")}), "599": Operator(name="Sprint", rates={"415": Decimal("1.00")}) })
def test_bad_type_for_operator_rates_raise_type_error(self): with self.assertRaises(TypeError): Operator(name="Verizon", rates=None)
class TestOperator(unittest.TestCase): def setUp(self): self.operator = Operator(name="Verison", rates={ "415": Decimal("1.00"), "512": Decimal("1.01") }) def test_operator_has_correct_types(self): self.assertIsInstance(self.operator, Operator) self.assertIsInstance(self.operator.name, str) self.assertIsInstance(self.operator.rates, dict) def test_bad_operator_name_raises_type_error(self): with self.assertRaises(TypeError): Operator(name=415, rates={ "512": Decimal("1.01"), }) def test_bad_operator_rate_key_raises_value_error(self): with self.assertRaises(ValueError): Operator(name="Verizon", rates={ 512: Decimal("1.01"), }) def test_bad_operator_rate_value_raises_value_error(self): with self.assertRaises(ValueError): Operator(name="Verizon", rates={ "415": 1.01, }) def test_price_for_prefix_returns_price(self): expected_price = Decimal("1.00") price = self.operator.price_for_prefix("415") self.assertEqual(price, expected_price) def test_price_for_prefix_returns_none_on_missing_key(self): expected_price = None price = self.operator.price_for_prefix("72") self.assertEqual(price, expected_price) def test_has_better_price_for_prefix(self): self.assertFalse( self.operator.has_better_price_for_prefix(prefix="415", price=Decimal(".99"))) self.assertTrue( self.operator.has_better_price_for_prefix(prefix="415", price=Decimal("1.01"))) def test_bad_prefix_for_has_better_price_for_prefix_raises_error(self): with self.assertRaises(TypeError): self.operator.has_better_price_for_prefix(prefix="415", price="1.00") def test_bad_prefix_type_for_price_for_prefix_raises_type_error(self): with self.assertRaises(TypeError): self.operator.price_for_prefix(prefix=415) def test_bad_prefix_value_for_price_for_prefix_raises_value_error(self): with self.assertRaises(ValueError): self.operator.price_for_prefix(prefix="bad") def test_bad_type_for_operator_rates_raise_type_error(self): with self.assertRaises(TypeError): Operator(name="Verizon", rates=None)
def setUp(self): self.operator = Operator(name="Verison", rates={ "415": Decimal("1.00"), "512": Decimal("1.01") })
def test_bad_operator_rate_value_raises_value_error(self): with self.assertRaises(ValueError): Operator(name="Verizon", rates={ "415": 1.01, })
def test_bad_operator_rate_key_raises_value_error(self): with self.assertRaises(ValueError): Operator(name="Verizon", rates={ 512: Decimal("1.01"), })
def test_bad_operator_name_raises_type_error(self): with self.assertRaises(TypeError): Operator(name=415, rates={ "512": Decimal("1.01"), })
def test_bad_prefix_str_value_for_add_prefix_raises_type_error(self): with self.assertRaises(ValueError): self.cache.add_prefix(prefix="bad value", operator=Operator( name="Verizon", rates={"72": Decimal("0.99")}))
def test_can_add_prefix(self): operator = Operator(name="Verizon", rates={"72": Decimal("0.99")}) self.cache.add_prefix(prefix="72", operator=operator) added_operator = self.cache.data["72"] self.assertEqual(added_operator, operator)