Esempio n. 1
0
 def test_use_resource(self):
   cur = self.db1.cursor()
   cur.execute("""
     CREATE TABLE member_table_v (
       hash CHAR(24),
       name TEXT,
       email VARCHAR(254),
       expiration_date DATE,
       resource VARCHAR(255));
   """)
   cur.execute("""
     INSERT INTO member_table_v (hash, name, email, expiration_date, resource) VALUES 
       (
         ?,
         'John Smith',
         '*****@*****.**',
         ?,
         'door'
       ),
       (
         ?,
         'John Smith',
         '*****@*****.**',
         ?,
         'laser'
       ),
       (
         ?,
         'Crystal Meth',
         '*****@*****.**',
         ?,
         'door'
       );
   """,
     (
       MemberDatabase.hash(b'test_data'), 
       datetime.now() + timedelta(days = 1),
       MemberDatabase.hash(b'test_data'), 
       datetime.now() + timedelta(days = 1),
       MemberDatabase.hash(b'othe_data'), 
       datetime.now() + timedelta(days = 1),
     ))
   self.db1.commit()
   # Use laser resource
   member_db1a = MemberDatabase(self.db1, "?", "member_table_v")
   member_db1a.use_resource('laser')
   member_db2 = MemberDatabase(self.db2, "?", "member_table_v")
   member_db2.create()
   member_db2.mimic(member_db1a)
   self.assertTrue(member_db2.have_current(b'test_data'))
   self.assertFalse(member_db2.have_current(b'othe_data'))
   # Use door resource
   member_db1b = MemberDatabase(self.db1, "?", "member_table_v")
   member_db1b.use_resource('door')
   member_db3 = MemberDatabase(self.db3, "?", "member_table_v")
   member_db3.create()
   member_db3.mimic(member_db1b)
   self.assertTrue(member_db3.have_current(b'test_data'))
   self.assertTrue(member_db3.have_current(b'othe_data'))
Esempio n. 2
0
 def test_hash_does_not_collide(self):
   # Check that hash doesn't collide with 2000 unique random strings
   self.assertEqual(len(frozenset([MemberDatabase.hash(''.join(random.sample(string.ascii_lowercase + string.ascii_uppercase + string.digits, 10)).encode()) for i in range(0, 2000)])), 2000)
Esempio n. 3
0
 def test_hash_mutates(self):
   # Check that the hash isn't a nop 
   self.assertNotEqual(MemberDatabase.hash("hello".encode()), "hello".encode())