示例#1
0
class TestToilet(unittest.TestCase):
    def setUp(self):
        self.toilet = Toilet('toilet', 'captor', Toilet.FREE)

    def test_captor(self):
        self.assertEqual('captor', self.toilet.captor())

    def test_convert_status(self):
        self.assertEqual(Toilet.FREE, Toilet.convert_status(True))
        self.assertEqual(Toilet.USED, Toilet.convert_status(False))
        self.assertEqual(Toilet.FREE, Toilet.convert_status(1000))
        self.assertEqual(Toilet.USED, Toilet.convert_status(70))

    def test_convert_status_string_raise_error(self):
        try:
            Toilet.convert_status("70")
            self.fail('convert_status does not raise ValueError when converting string into status')
        except ValueError as err:
            self.assertIsInstance(err, ValueError)

    def test_is_free(self):
        self.assertTrue(self.toilet.is_free())

    def test_is_not_free(self):
        self.toilet.update(False)
        self.assertFalse(self.toilet.is_free())

    def test_to_string(self):
        self.assertEqual('toilet is free', self.toilet.to_string())

        self.toilet.update(Toilet.USED)
        self.assertEqual('toilet is used', self.toilet.to_string())

        self.toilet.update(False)
        self.assertEqual('toilet is used', self.toilet.to_string())