Example #1
0
    def test_are_connected_two_pandas_that_are(self):
        panda1 = Panda('name', '*****@*****.**', 'male')
        panda2 = Panda('name', '*****@*****.**', 'male')

        self.panda_social_network.make_friends(panda1, panda2)
        self.assertTrue(self.panda_social_network.are_connected(
            panda1, panda2))
 def test_invalid_email(self):
     with self.assertRaises(InvalidEmailError):
         Panda('Ivo', '[email protected]', 'male')
         Panda('Ivo', '*****@*****.**', 'male')
         Panda('Ivo', 'nqkoisiBre.com', 'male')
         Panda('Ivo', 'nqkoisiBre@Abv.', 'male')
         Panda('Ivo', 'nqkoisiBre@Abv', 'male')
Example #3
0
class TestPanda(unittest.TestCase):
    def setUp(self, name, email, male):
        self.ivo = Panda("Ivo", "*****@*****.**", "male")
        self.name = "Ivo"
        self.email = "*****@*****.**"
        self.gender = "male"

    def test_init(self):
        self.assertTrue(isinstance(self.ivo, Panda))
        self.assertEqual(self.ivo.name, self.name)
        self.assertEqual(self.ivo.email, self.email)
        self.assertEqual(self.ivo.gender, self.gender)

        with self.assertRaises(ValueError):
            self.ivo = Panda("Ivo", "ivopandamail.com", "male")

    def test_gender(self):
        self.assertTrue(self.ivo.isMale())
        self.assertFalse(self.ivo.isFemale())

    def test_str(self):
        self.assertEqual(str(self.ivo), self.ivo.name)

    def test_eq(self):
        other_panda = Panda("Rado", "*****@*****.**", "male")
        self.assertFalse(self.ivo == other_panda)

    def test_hash(self):
        self.assertTrue(isinstance(self.ivo.__hash__(), int))
Example #4
0
 def test_make_friends_work_properly(self):
     panda1 = Panda('Pesho', '*****@*****.**', 'male')
     panda2 = Panda('Peshoze', '*****@*****.**', 'male')
     self.assertEqual(0, len(self.panda_social_network.get_pandas()))
     self.panda_social_network.make_friends(panda1, panda2)
     self.assertEqual(2, len(self.panda_social_network.get_pandas()))
     self.assertTrue(self.panda_social_network.are_friends(panda1, panda2))
     self.assertTrue(self.panda_social_network.are_friends(panda2, panda1))
 def test_make_friends_work_properly(self):
     panda1 = Panda('testtest', '*****@*****.**', 'male')
     panda2 = Panda('testtest2', '*****@*****.**', 'male')
     self.assertEqual(0, len(self.panda_social_network.get_pandas()))
     self.panda_social_network.make_friends(panda1, panda2)
     self.assertEqual(2, len(self.panda_social_network.get_pandas()))
     self.assertTrue(self.panda_social_network.are_friends(panda1, panda2))
     self.assertTrue(self.panda_social_network.are_friends(panda2, panda1))
Example #6
0
    def test_init(self):
        self.assertTrue(isinstance(self.ivo, Panda))
        self.assertEqual(self.ivo.name, self.name)
        self.assertEqual(self.ivo.email, self.email)
        self.assertEqual(self.ivo.gender, self.gender)

        with self.assertRaises(ValueError):
            self.ivo = Panda("Ivo", "ivopandamail.com", "male")
Example #7
0
    def test_connection_level_for_two_pandas_who_are_not_connected(self):
        panda1 = Panda('name', '*****@*****.**', 'male')
        panda2 = Panda('name', '*****@*****.**', 'male')

        self.panda_social_network.add_panda(panda1)
        self.panda_social_network.add_panda(panda2)

        self.assertEqual(
            self.panda_social_network.connection_level(panda1, panda2), -1)
 def test_connection_level_3_pandas(self):
     ivo = Panda("Ivo", "*****@*****.**", "male")
     pandio = Panda("Pandio", "*****@*****.**", "male")
     hime = Panda("Hime", "*****@*****.**", "female")
     self.network.add_panda(ivo)
     self.network.add_panda(pandio)
     self.network.add_panda(hime)
     self.network.make_friends(ivo, pandio)
     self.network.make_friends(pandio, hime)
     self.assertEqual(2, self.network.connection_level(ivo, hime))
Example #9
0
    def test_gender_when_level_is_0(self):
        panda1 = Panda('name', '*****@*****.**', 'male')
        panda2 = Panda('name', '*****@*****.**', 'male')
        panda3 = Panda('name', '*****@*****.**', 'male')

        self.panda_social_network.make_friends(panda1, panda2)
        self.panda_social_network.make_friends(panda1, panda3)
        self.assertEqual(
            self.panda_social_network.how_many_gender_in_network(
                1, panda1, 'male'), 2)
Example #10
0
    def test_friends_of_panda_with_two_friends(self):
        panda1 = Panda('name', '*****@*****.**', 'male')
        panda2 = Panda('name', '*****@*****.**', 'male')
        panda3 = Panda('name', '*****@*****.**', 'male')

        self.panda_social_network.make_friends(panda1, panda2)
        self.panda_social_network.make_friends(panda1, panda3)

        self.assertEqual(self.panda_social_network.friends_of(panda1),
                         set([panda2, panda3]))
 def setUp(self):
     self.ivo = Panda('Ivo', '*****@*****.**', 'male')
     self.ivo_copy = Panda('Ivo', '*****@*****.**', 'male')
     self.roza = Panda('Rositsa', '*****@*****.**', 'female')
     self.smith = Panda('John', '*****@*****.**', 'male')
     self.smalling = Panda('Paul', '*****@*****.**', 'male')
     self.patrice = Panda('Evra', '*****@*****.**', 'male')
     self.girl = Panda('Girl', '*****@*****.**', 'female')
Example #12
0
    def test_connection_level_for_graph_with_4_pandas(self):
        panda1 = Panda('name', '*****@*****.**', 'male')
        panda2 = Panda('name', '*****@*****.**', 'male')
        panda3 = Panda('name', '*****@*****.**', 'male')
        panda4 = Panda('name', '*****@*****.**', 'male')
        self.panda_social_network.make_friends(panda1, panda2)
        self.panda_social_network.make_friends(panda2, panda3)
        self.panda_social_network.make_friends(panda3, panda4)

        level = self.panda_social_network. \
            connection_level(panda1, panda4)
        self.assertEqual(3, level)
 def test_hash(self):
     """ Create three almost equal pandas and see if their hash function works
         as expected"""
     one = Panda('Ivo', '*****@*****.**', 'male')
     two = Panda('Ivo', '*****@*****.**', 'male')
     three = Panda('ivo', '*****@*****.**', 'male')
     four = Panda('shopa', '*****@*****.**', 'male')
     # create a set and see if all four pandas are there, if not, some have been overwritten
     pandas = {one, two, three, four}
     self.assertEqual(len(pandas), 4)
     # create a set again
     one_copy = Panda('Ivo', '*****@*****.**', 'male')
     pandas = {one, one_copy}  # THESE SHOULD OVERWRITE
     self.assertNotEqual(len(pandas), 2)
     self.assertEqual(len(pandas), 1)
class PandaTests(unittest.TestCase):
    def setUp(self):
        self.ivo = Panda('Ivo', '*****@*****.**', 'male')
        self.ivo_copy = Panda('Ivo', '*****@*****.**', 'male')
        self.roza = Panda('Rositsa', '*****@*****.**', 'female')
        self.smith = Panda('John', '*****@*****.**', 'male')
        self.smalling = Panda('Paul', '*****@*****.**', 'male')
        self.patrice = Panda('Evra', '*****@*****.**', 'male')
        self.girl = Panda('Girl', '*****@*****.**', 'female')

    def test_equal(self):
        self.assertNotEqual(self.ivo, self.roza)
        self.assertEqual(self.ivo, self.ivo_copy)

    def test_gender(self):
        self.assertTrue(self.girl.isFemale())
        self.assertTrue(self.patrice.isMale())

    def test_invalid_email(self):
        with self.assertRaises(InvalidEmailError):
            Panda('Ivo', '[email protected]', 'male')
            Panda('Ivo', '*****@*****.**', 'male')
            Panda('Ivo', 'nqkoisiBre.com', 'male')
            Panda('Ivo', 'nqkoisiBre@Abv.', 'male')
            Panda('Ivo', 'nqkoisiBre@Abv', 'male')

    def test_hash(self):
        """ Create three almost equal pandas and see if their hash function works
            as expected"""
        one = Panda('Ivo', '*****@*****.**', 'male')
        two = Panda('Ivo', '*****@*****.**', 'male')
        three = Panda('ivo', '*****@*****.**', 'male')
        four = Panda('shopa', '*****@*****.**', 'male')
        # create a set and see if all four pandas are there, if not, some have been overwritten
        pandas = {one, two, three, four}
        self.assertEqual(len(pandas), 4)
        # create a set again
        one_copy = Panda('Ivo', '*****@*****.**', 'male')
        pandas = {one, one_copy}  # THESE SHOULD OVERWRITE
        self.assertNotEqual(len(pandas), 2)
        self.assertEqual(len(pandas), 1)
    def setUp(self):
        self.ivo = Panda('Ivo', '*****@*****.**', 'male')
        self.ivo_copy = Panda('Ivo', '*****@*****.**', 'male')
        self.roza = Panda('Rositsa', '*****@*****.**', 'female')
        self.smith = Panda('John', '*****@*****.**', 'male')
        self.smalling = Panda('Paul', '*****@*****.**', 'male')
        self.patrice = Panda('Evra', '*****@*****.**', 'male')
        self.girl = Panda('Girl', '*****@*****.**', 'female')
        self.friendless_guy = Panda('Friendless', '*****@*****.**', 'male')

        self.social_network = PandaSocialNetwork()
        self.social_network.add_panda(self.friendless_guy)
        self.social_network.make_friends(self.ivo, self.roza)
        self.social_network.make_friends(self.ivo, self.smith)
        self.social_network.make_friends(self.ivo, self.smalling)
        self.social_network.make_friends(self.patrice, self.smalling)
        self.social_network.make_friends(self.patrice, self.girl)
Example #16
0
 def setUp(self, name, email, male):
     self.ivo = Panda("Ivo", "*****@*****.**", "male")
     self.name = "Ivo"
     self.email = "*****@*****.**"
     self.gender = "male"
 def setUp(self):
     self.network = PandaSocialNetwork()
     self.network.all_pandas = {}
     self.ivo = Panda("Ivo", "*****@*****.**", "male")
     self.pandio = Panda("Pandio", "*****@*****.**", "male")
     self.hime = Panda("Hime", "*****@*****.**", "female")
Example #18
0
 def test_get_pandas_return_1_panda_if_1_panda_is_added(self):
     panda = Panda('Pesho', '*****@*****.**', 'male')
     self.panda_social_network.add_panda(panda)
     self.assertEqual(self.panda_social_network.get_pandas(), [panda])
Example #19
0
 def test_eq(self):
     other_panda = Panda("Rado", "*****@*****.**", "male")
     self.assertFalse(self.ivo == other_panda)
Example #20
0
 def test_panda_name_method_avoids_collision(self):
     panda = Panda('name', '*****@*****.**', 'male')
     self.assertEqual(panda.name(), 'name')
Example #21
0
 def test_friends_of_panda_with_0_friends(self):
     panda1 = Panda('name', '*****@*****.**', 'male')
     self.panda_social_network.add_panda(panda1)
     self.assertEqual(self.panda_social_network.friends_of(panda1), set())
 def test_get_pandas_return_1_panda_if_1_panda_is_added(self):
     panda = Panda('testtest', '*****@*****.**', 'male')
     self.panda_social_network.add_panda(panda)
     self.assertEqual(self.panda_social_network.get_pandas(), [panda])