Exemple #1
0
    def testDisallowed5(self):
        """ Testing on a bigger database """

        resetTestDB()
        conn = connectDB(TOY_DB_PATH)
        c = conn.cursor()

        # Add To USERS Table
        for i in range(1, 1001):
            c.execute(''' INSERT INTO USERS VALUES ({}, "foo") '''.format(i))
        c.execute(''' INSERT INTO DISALLOWED_USERNAMES 
				  VALUES (1, "foo", "2018-06-15", "2018-06-15")
				  ''')

        conn.commit()

        self.assertEqual(
            len(findDisallowedUsers.returnDisallowedUsers(TOY_DB_PATH)), 1000)

        resolveDisallowed.resolveDisallowedUsers(TOY_DB_PATH)

        c.execute(''' SELECT * FROM USERS ''')

        rows = c.fetchall()
        self.assertEqual(rows[0], (1, "foo1"))
        self.assertEqual(rows[999], (1000, "foo1000"))

        c.close()
        conn.close()
Exemple #2
0
    def testDisallowed1(self):
        """ Banned = [foo] => foo, foo, foo --> foo1, foo2, foor3 """
        resetTestDB()
        conn = connectDB(TOY_DB_PATH)
        c = conn.cursor()

        # Add To USERS Table
        c.execute(''' INSERT INTO USERS VALUES (1, "foo") ''')
        c.execute(''' INSERT INTO USERS VALUES (2, "foo") ''')
        c.execute(''' INSERT INTO USERS VALUES (3, "foo") ''')
        c.execute(''' INSERT INTO DISALLOWED_USERNAMES 
					  VALUES (1, "foo", "2018-06-15", "2018-06-15") 
				  ''')

        conn.commit()

        # Also test findDisallowedUsers using ReturnDiallowedUsers
        self.assertEqual(
            len(findDisallowedUsers.returnDisallowedUsers(TOY_DB_PATH)), 3)

        resolveDisallowed.resolveDisallowedUsers(TOY_DB_PATH)

        c.execute(''' SELECT * FROM USERS ''')

        # Expected No Duplicates
        rows = c.fetchall()
        self.assertEqual(rows[0], (1, "foo1"))
        self.assertEqual(rows[1], (2, "foo2"))
        self.assertEqual(rows[2], (3, "foo3"))

        c.close()
        conn.close()
Exemple #3
0
 def testResolveDisallowed(self):
     """ Testing to see if Disallowed usernames are fixed """
     resetDB(DB_COPY_PATH, getPath())
     # 1. check duplicates exist -- row is list of disallowed user tuples
     row = findDisallowedUsers.returnDisallowedUsers(getPath())
     self.assertTrue(len(row) > 0)
     resolveDisallowed.resolveDisallowedUsers(getPath())
     # 2. list of tuples should be empty after resolving disallowed
     row = findDisallowedUsers.returnDisallowedUsers(getPath())
     self.assertEqual(len(row), 0)
Exemple #4
0
    def testResolvingBoth(self):
        """ Resolving Duplicates and Disallowed should fix both """
        resetDB(DB_COPY_PATH, getPath())
        resolveDisallowed.resolveDisallowedUsers(getPath())
        resolveCollisions.resolveUsernameCollisions(getPath())
        self.assertTrue(checkDuplicatesAll(getPath()))
        row = findDisallowedUsers.returnDisallowedUsers(getPath())
        self.assertEqual(len(row), 0)

        # both directions should be the same
        resetDB(DB_COPY_PATH, getPath())
        resolveCollisions.resolveUsernameCollisions(getPath())
        resolveDisallowed.resolveDisallowedUsers(getPath())
        self.assertTrue(checkDuplicatesAll(getPath()))
        row = findDisallowedUsers.returnDisallowedUsers(getPath())
        self.assertEqual(len(row), 0)
Exemple #5
0
    def testDisallowed4(self):
        """ Banned = [foo, foo2, foo4] =>
				foo, foo2, foo, foo21, foo => foo1, foo22, foo3, foo21, foo5
		"""
        resetTestDB()
        conn = connectDB(TOY_DB_PATH)
        c = conn.cursor()

        # Add To USERS Table
        c.execute(''' INSERT INTO USERS VALUES (1, "foo") ''')
        c.execute(''' INSERT INTO USERS VALUES (2, "foo2") ''')
        c.execute(''' INSERT INTO USERS VALUES (3, "foo") ''')
        c.execute(''' INSERT INTO USERS VALUES (4, "foo21") ''')
        c.execute(''' INSERT INTO USERS VALUES (5, "foo") ''')
        c.execute(''' INSERT INTO DISALLOWED_USERNAMES 
					  VALUES (1, "foo", "2018-06-15", "2018-06-15") 
				  ''')
        c.execute(''' INSERT INTO DISALLOWED_USERNAMES 
					  VALUES (2, "foo2", "2018-06-15", "2018-06-15") 
				  ''')
        c.execute(''' INSERT INTO DISALLOWED_USERNAMES 
					  VALUES (3, "foo4", "2018-06-15", "2018-06-15") 
				  ''')

        conn.commit()

        self.assertEqual(
            len(findDisallowedUsers.returnDisallowedUsers(TOY_DB_PATH)), 4)

        resolveDisallowed.resolveDisallowedUsers(TOY_DB_PATH)

        c.execute(''' SELECT * FROM USERS ''')

        rows = c.fetchall()
        self.assertEqual(rows[0], (1, "foo1"))
        self.assertEqual(rows[1], (2, "foo22"))
        self.assertEqual(rows[2], (3, "foo3"))
        self.assertEqual(rows[3], (4, "foo21"))
        self.assertEqual(rows[4], (5, "foo5"))

        c.close()
        conn.close()
Exemple #6
0
    def testDisallowed3(self):
        """ Banned = [foo, foo1, foo3] =>
				foo, foo, foo => foo2, foo4, foo5
		"""
        resetTestDB()
        conn = connectDB(TOY_DB_PATH)
        c = conn.cursor()

        # Add To USERS Table
        c.execute(''' INSERT INTO USERS VALUES (1, "foo") ''')
        c.execute(''' INSERT INTO USERS VALUES (2, "foo") ''')
        c.execute(''' INSERT INTO USERS VALUES (3, "foo") ''')
        c.execute(''' INSERT INTO DISALLOWED_USERNAMES 
					  VALUES (1, "foo", "2018-06-15", "2018-06-15") 
				  ''')
        c.execute(''' INSERT INTO DISALLOWED_USERNAMES 
					  VALUES (2, "foo1", "2018-06-15", "2018-06-15") 
				  ''')
        c.execute(''' INSERT INTO DISALLOWED_USERNAMES 
					  VALUES (3, "foo3", "2018-06-15", "2018-06-15") 
				  ''')

        conn.commit()

        self.assertEqual(
            len(findDisallowedUsers.returnDisallowedUsers(TOY_DB_PATH)), 3)

        resolveDisallowed.resolveDisallowedUsers(TOY_DB_PATH)

        c.execute(''' SELECT * FROM USERS ''')

        # Expected No Change since no collision
        rows = c.fetchall()
        self.assertEqual(rows[0], (1, "foo2"))
        self.assertEqual(rows[1], (2, "foo4"))
        self.assertEqual(rows[2], (3, "foo5"))

        c.close()
        conn.close()