예제 #1
0
class TestDirectory(unittest.TestCase):
    def setUp(self):
        self.file = "test.txt"
        self.dir = Directory(self.file)

    def tearDown(self):
        if isfile(self.file):
            os.remove(self.file)

    def test_equal(self):
        self.dir.add_contact("pepe", "*****@*****.**", "27", "Mexico")
        contact = Contact("pepe", "*****@*****.**", "27", "Mexico")
        self.assertEqual(contact, self.dir.search_by_email("*****@*****.**"))

    def test_not_equal(self):
        self.dir.add_contact("pepe", "*****@*****.**", "27", "Mexico")
        contact = Contact("juan", "*****@*****.**", "27", "Mexico")
        self.assertNotEqual(contact, self.dir.search_by_email("*****@*****.**"))

    def test_search_age(self):
        self.dir.add_contact("pepe", "*****@*****.**", "27", "Mexico")
        self.dir.add_contact("juan", "*****@*****.**", "27", "Mexico")
        self.dir.add_contact("oscar", "*****@*****.**", "29", "Mexico")
        res = self.dir.search_by_age(27)
        for elem in res:
            self.assertEqual(elem._age, "27")

    def test_wrong_name(self):
        with self.assertRaises(ValueError):
            self.dir.add_contact("pepe2", "*****@*****.**", "27", "Mexico")

    def test_wrong_mail(self):
        with self.assertRaises(ValueError):
            self.dir.add_contact("pepe", "pepegmail.com", "27", "Mexico")

    def test_wrong_age(self):
        with self.assertRaises(ValueError):
            self.dir.add_contact("pepe", "*****@*****.**", "es", "Mexico")

    def test_wrong_country(self):
        with self.assertRaises(ValueError):
            self.dir.add_contact("pepe", "*****@*****.**", "27", "123")

    def test_check_file(self):
        self.dir.add_contact("pepe", "*****@*****.**", "27", "Mexico")
        self.dir.add_contact("juan", "*****@*****.**", "27", "Mexico")
        self.dir.add_contact("oscar", "*****@*****.**", "29", "Mexico")
        self.dir.save()
        self.assertTrue(isfile(self.file))

    def test_load(self):
        self.dir.add_contact("pepe", "*****@*****.**", "27", "Mexico")
        self.dir.add_contact("juan", "*****@*****.**", "27", "Mexico")
        self.dir.add_contact("oscar", "*****@*****.**", "29", "Mexico")
        self.dir.save()
        dir2 = Directory(self.file)
        self.assertEqual(self.dir.search_by_email("*****@*****.**"),
                         dir2.search_by_email("*****@*****.**"))