Ejemplo n.º 1
0
 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")})
     })
Ejemplo n.º 2
0
 def test_bad_type_for_operator_rates_raise_type_error(self):
     with self.assertRaises(TypeError):
         Operator(name="Verizon", rates=None)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
 def setUp(self):
     self.operator = Operator(name="Verison",
                              rates={
                                  "415": Decimal("1.00"),
                                  "512": Decimal("1.01")
                              })
Ejemplo n.º 5
0
 def test_bad_operator_rate_value_raises_value_error(self):
     with self.assertRaises(ValueError):
         Operator(name="Verizon", rates={
             "415": 1.01,
         })
Ejemplo n.º 6
0
 def test_bad_operator_rate_key_raises_value_error(self):
     with self.assertRaises(ValueError):
         Operator(name="Verizon", rates={
             512: Decimal("1.01"),
         })
Ejemplo n.º 7
0
 def test_bad_operator_name_raises_type_error(self):
     with self.assertRaises(TypeError):
         Operator(name=415, rates={
             "512": Decimal("1.01"),
         })
Ejemplo n.º 8
0
 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")}))
Ejemplo n.º 9
0
 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)