def setUp(self): self.backend = PersistentBackend('.') # Create some data self.block1 = DatabaseModel('1') self.block2 = DatabaseModel('2') self.block3 = DatabaseModel('3')
def initialize_api(self): from market.api.api import MarketAPI from market.database.database import MarketDatabase from market.database.backends import PersistentBackend self._api = MarketAPI( MarketDatabase( PersistentBackend( '.', u'sqlite/%s-market.db' % self.database_prefix)))
def setUp(self): self.database = MarketDatabase(PersistentBackend('.')) self.database.backend.clear() # Some database models self.model1 = DatabaseModel() self.model2 = DatabaseModel()
def initialize_api(self): from market.api.api import MarketAPI from market.database.backends import PersistentBackend, MemoryBackend from market.database.database import MarketDatabase self._api = MarketAPI( MarketDatabase(PersistentBackend('.', u'sqlite/market.db')))
def setUp(self): # Faking IOThread registerAsIOThread() # Object creation and preperation self.dispersy = Dispersy(ManualEnpoint(0), unicode("dispersy_temporary_mc1")) self.dispersy_bank = Dispersy(ManualEnpoint(0), unicode("dispersy_temporary_mc2")) self.api = MarketAPI( MarketDatabase(PersistentBackend('.', u'borrower.db'))) self.api_bank = MarketAPI( MarketDatabase(PersistentBackend('.', u'bank.db'))) self.api.db.backend.clear() self.api_bank.db.backend.clear() self.user, _, priv_user = self.api.create_user() self.bank, _, priv_bank = self.api_bank.create_user() self.dispersy._database.open() self.dispersy_bank._database.open() self.master_member = DummyMember(self.dispersy, 1, "a" * 20) self.member = self.dispersy.get_member( private_key=priv_user.decode("HEX")) self.member_bank = self.dispersy_bank.get_member( private_key=priv_bank.decode("HEX")) self.community = MortgageMarketCommunity.init_community( self.dispersy, self.master_member, self.member) self.community_bank = MortgageMarketCommunity.init_community( self.dispersy_bank, self.master_member, self.member_bank) self.community.api = self.api self.community.user = self.user self.api.community = self.community self.community_bank.api = self.api_bank self.community_bank.user = self.bank self.api_bank.community = self.community_bank self.db = self.api.db.backend self.bank_db = self.api_bank.db.backend self.community.persistence = self.db self.community_bank.persistence = self.bank_db # Models self.mortgage = Mortgage(UUID('b97dfa1c-e125-4ded-9b1a-5066462c529c'), UUID('b97dfa1c-e125-4ded-9b1a-5066462c520c'), 'ING', 80000, 1, 2.5, 1.5, 2.5, 36, 'A', [], STATUS.ACCEPTED) t = int(time.time()) self.payload = ( self.bank.id, self.user.id, self.mortgage, self.mortgage, 2, 1, 'prev_hash_bene', 'prev_hash_beni', 'sig_bene', 'sig_beni', t, ) self.payload2 = ( self.bank.id, '', self.mortgage, None, 2, 1, 'prev_hash_bene', '', 'sig_bene', '', t, )
class PersistentBackendTestSuite(unittest.TestCase): def setUp(self): self.backend = PersistentBackend('.') # Create some data self.block1 = DatabaseModel('1') self.block2 = DatabaseModel('2') self.block3 = DatabaseModel('3') def tearDown(self): self.backend.close() def test_clear(self): self.backend.clear() self.backend.post('test', self.block1.id, self.block1) self.backend.clear() with self.assertRaises(IndexError): self.backend.get('test', self.block1.id) def test_post(self): self.backend.clear() self.backend.post('test', self.block1.id, self.block1.encode()) self.assertEqual( self.block1, DatabaseModel.decode(self.backend.get('test', self.block1.id))) def test_get(self): self.backend.clear() self.backend.post('test', self.block1.id, self.block1.encode()) self.backend.post('test', self.block2.id, self.block2.encode()) self.backend.post('test', self.block3.id, self.block3.encode()) with self.assertRaises(IndexError): self.backend.post('test2', self.block1.id, self.block1.encode()) self.assertEqual(DatabaseModel.decode(self.backend.get('test', '1')), self.block1) self.assertEqual( DatabaseModel.decode(self.backend.get('test', self.block2.id)), self.block2) self.assertNotEqual( DatabaseModel.decode(self.backend.get('test', '1')), DatabaseModel.decode(self.backend.get('test', '2'))) with self.assertRaises(IndexError): self.assertEqual( DatabaseModel.decode(self.backend.get('test', '1')), DatabaseModel.decode(self.backend.get('test2', '1'))) def test_get_error(self): self.backend.clear() with self.assertRaises(IndexError): self.backend.get('test', 1) def test_put_fail(self): self.backend.clear() self.assertFalse(self.backend.put('test', '1', self.block1)) def test_put_success(self): self.backend.clear() self.backend.post('test', self.block1.id, self.block1.encode()) self.assertEqual( DatabaseModel.decode(self.backend.get('test', self.block1.id)), self.block1) self.assertTrue( self.backend.put('test', self.block1.id, self.block2.encode())) self.assertEqual( DatabaseModel.decode(self.backend.get('test', self.block1.id)), self.block2) def test_delete(self): self.backend.clear() self.backend.post('test', self.block1.id, self.block1) self.backend.delete(self.block1) self.assertFalse(self.backend.exists('test', self.block1.id)) def test_get_all(self): self.backend.clear() self.backend.post('test', self.block1.id, self.block1.encode()) self.backend.post('test', self.block2.id, self.block2.encode()) self.backend.post('boe', self.block3.id, self.block3.encode()) all_tests = self.backend.get_all('test') self.assertIsInstance(all_tests, list) self.assertIn(self.block1.encode(), all_tests) self.assertIn(self.block2.encode(), all_tests) self.assertNotIn(self.block3.encode(), all_tests)