class AccountPoolTest(unittest.TestCase): CORRELATE = AccountPool def setUp(self): self.user1 = 'testuser1' self.password1 = 'test1' self.account1 = Account(self.user1, self.password1) self.user2 = 'testuser2' self.password2 = 'test2' self.account2 = Account(self.user2, self.password2) self.accm = AccountPool() def testConstructor(self): accm = AccountPool() self.assertEqual(accm.n_accounts(), 0) accm = AccountPool([self.account1, self.account2]) self.assertEqual(accm.n_accounts(), 2) def testAddAccount(self): self.assertEqual(self.accm.n_accounts(), 0) self.accm.add_account(self.account1) self.assertEqual(self.accm.n_accounts(), 1) self.accm.add_account(self.account2) self.assertEqual(self.accm.n_accounts(), 2) def testReset(self): self.testAddAccount() self.accm.reset() self.assertEqual(self.accm.n_accounts(), 0) def testHasAccount(self): self.assertEqual(self.accm.has_account(self.account1), False) self.accm.add_account(self.account1) self.assertEqual(self.accm.has_account(self.account1), True) def testGetAccountFromHash(self): account = Account('user', 'test') thehash = account.__hash__() self.accm.add_account(account) self.assertEqual(self.accm.get_account_from_hash(thehash), account) def testGetAccountFromName(self): self.testAddAccount() self.assertEqual(self.account2, self.accm.get_account_from_name(self.user2)) def testNAccounts(self): self.testAddAccount() def testAcquireAccount(self): self.testAddAccount() self.accm.acquire_account(self.account1) self.account1.release() self.accm.acquire_account(self.account1) self.account1.release() # Add three more accounts. filename = os.path.join(os.path.dirname(__file__), 'account_pool.cfg') self.accm.add_account(get_accounts_from_file(filename)) self.assertEqual(self.accm.n_accounts(), 5) for i in range(0, 2000): # Each time an account is acquired a different one should be # returned. acquired = {} for n in range(0, 5): account = self.accm.acquire_account() self.assertTrue(account is not None) self.assertNotIn(account.get_name(), acquired) acquired[account.get_name()] = account # Release one account. acquired['abc'].release() # Acquire one account. account = self.accm.acquire_account() self.assertEqual(account.get_name(), 'abc') # Release all accounts. for account in list(acquired.values()): account.release() def testReleaseAccounts(self): account1 = Account('foo') account2 = Account('bar') pool = AccountPool() pool.add_account(account1) pool.add_account(account2) pool.acquire_account(account1, 'one') pool.acquire_account(account2, 'two') self.assertNotIn(account1, pool.unlocked_accounts) self.assertNotIn(account2, pool.unlocked_accounts) pool.release_accounts('one') self.assertIn(account1, pool.unlocked_accounts) self.assertNotIn(account2, pool.unlocked_accounts) pool.release_accounts('one') self.assertIn(account1, pool.unlocked_accounts) self.assertNotIn(account2, pool.unlocked_accounts) pool.release_accounts('two') self.assertIn(account1, pool.unlocked_accounts) self.assertIn(account2, pool.unlocked_accounts)
class AccountTest(unittest.TestCase): CORRELATE = Account def setUp(self): self.user = '******' self.password1 = 'test1' self.password2 = 'test2' self.key = PrivateKey() self.account = Account(self.user, self.password1, self.password2, self.key) def testConstructor(self): key = PrivateKey() account = Account(self.user, self.password1, key=key) self.assertEqual(account.get_key(), key) self.assertEqual(account.get_password(), account.get_authorization_password()) account = Account(self.user, self.password1, self.password2) self.assertNotEqual(account.get_password(), account.get_authorization_password()) def testContext(self): with self.account as account: account.release() account.acquire() self.account.acquire() with self.account.context() as context: context.release() context.acquire() with context.context() as subcontext: subcontext.release() subcontext.acquire() with subcontext.context() as subsubcontext: subsubcontext.release() subsubcontext.acquire() with self.account: pass def testAcquire(self): self.account.acquire() self.account.release() self.account.acquire() self.account.release() def testRelease(self): self.assertRaises(Exception, self.account.release) def testSetName(self): self.assertEqual(self.user, self.account.get_name()) self.account.set_name('foo') self.assertEqual('foo', self.account.get_name()) def testGetName(self): self.assertEqual(self.user, self.account.get_name()) def testSetPassword(self): self.assertEqual(self.password1, self.account.get_password()) self.account.set_password('foo') self.assertEqual('foo', self.account.get_password()) def testGetPassword(self): self.assertEqual(self.password1, self.account.get_password()) def testSetAuthorizationPassword(self): self.assertEqual(self.password2, self.account.get_authorization_password()) self.account.set_authorization_password('foo') self.assertEqual('foo', self.account.get_authorization_password()) def testGetAuthorizationPassword(self): self.assertEqual(self.password2, self.account.get_authorization_password()) def testGetKey(self): self.assertEqual(self.key, self.account.get_key())
class AccountTest(unittest.TestCase): CORRELATE = Account def setUp(self): self.user = '******' self.password1 = 'test1' self.password2 = 'test2' self.key = PrivateKey() self.account = Account(self.user, self.password1, self.password2, self.key) def testConstructor(self): key = PrivateKey() account = Account(self.user, self.password1, key = key) self.assertEqual(account.get_key(), key) self.assertEqual(account.get_password(), account.get_authorization_password()) account = Account(self.user, self.password1, self.password2) self.failIfEqual(account.get_password(), account.get_authorization_password()) def testContext(self): with self.account as account: account.release() account.acquire() self.account.acquire() with self.account.context() as context: context.release() context.acquire() with context.context() as subcontext: subcontext.release() subcontext.acquire() with subcontext.context() as subsubcontext: subsubcontext.release() subsubcontext.acquire() with self.account: pass def testAcquire(self): self.account.acquire() self.account.release() self.account.acquire() self.account.release() def testRelease(self): self.assertRaises(Exception, self.account.release) def testSetName(self): self.assertEqual(self.user, self.account.get_name()) self.account.set_name('foo') self.assertEqual('foo', self.account.get_name()) def testGetName(self): self.assertEqual(self.user, self.account.get_name()) def testSetPassword(self): self.assertEqual(self.password1, self.account.get_password()) self.account.set_password('foo') self.assertEqual('foo', self.account.get_password()) def testGetPassword(self): self.assertEqual(self.password1, self.account.get_password()) def testSetAuthorizationPassword(self): self.assertEqual(self.password2, self.account.get_authorization_password()) self.account.set_authorization_password('foo') self.assertEqual('foo', self.account.get_authorization_password()) def testGetAuthorizationPassword(self): self.assertEqual(self.password2, self.account.get_authorization_password()) def testGetKey(self): self.assertEqual(self.key, self.account.get_key())