def periodic_check(): print("Periodic Check thread started") while True: bot_api = api(seed) with bot_db_lock: total_balance = bot_db.get_total_balance() address_index = bot_db.get_address_index() account_balance = bot_api.get_account_balance(address_index) difference = account_balance - total_balance if total_balance == account_balance: print("Periodic Check Thread: Account balance matches total user balance:{0}.".format(account_balance)) logging.info('Account balance matches total user balance:{0}'.format(account_balance)) elif total_balance > account_balance: print("Periodic Check Thread: Account balance({0}) is less than user balance({1})! Difference: {2}".format(account_balance,total_balance,difference)) logging.info('Account balance({0}) is less than user balance({1})'.format(account_balance,total_balance)) elif total_balance < account_balance: print("Periodic Check Thread: Account balance({0}) is greater than user balance({1}). Difference: {2}".format(account_balance,total_balance,difference)) logging.info('Account balance({0}) is greater than user balance({1})'.format(account_balance, total_balance)) with bot_db_lock: used_addresses = bot_db.get_used_addresses() address_list = [] print("Periodic Check Thread: {0} addresses have been used".format(len(used_addresses))) for address in used_addresses: address_list.append(address[1]) for address in used_addresses: if address_list.count(address[1]) > 1: print("Periodic Check Thread: Duplicated address: {0} index {1}".format(address[1],address[0])) time.sleep(1800)
def test_check_transaction(self): """ Test check_transaction preconditions: hash1 is confirmed hash2 is not confirmed hash3 is confirmed via reattach postconditions: check_transaction returns true when passed hash1 check_transaction returns false when passed hash2 check_transaction returns true when passed hash3 """ hash1 = 'YWDRSAXEKQLBKDUJYRPJAQPH9J9OARUCSBWRDGB9IRLZVEDQWJGNHHZCL9BZ9SLKZHRPZHKBTZFJNZDPX' hash2 = 'PP9CVRCOXAYSBSKF9GKGP9GJDJCAEKFFKOT9BDXHGTHDAGKYVTODHBSKFZCYZKXJKYJXAZJ9XLOEGDH99' hash3 = 'BGFXCCEOZWVHOC9ODI9JA9TDNFFXV9QAISRAQLXDEEBRDITFKPVCKUEMYBIKTXOPEELTV9KFRDIYQEVAC' bot_api = api(test_seed) class testTransaction: bundle_hash = hash1 self.assertTrue(bot_api.check_transaction(testTransaction)) testTransaction.bundle_hash = hash2 self.assertFalse(bot_api.check_transaction(testTransaction)) testTransaction.bundle_hash = hash3 self.assertTrue(bot_api.check_transaction(testTransaction))
def test_send_transfer(self): """ Test send_transfer Preconditions: Seed has at least 1 iota Postconditions: No error is thrown Created bundle is valid Address balance has increased by 1 iota """ seed = b'SWMS9HOIE9EKPKWTBKJHTJOX9EU9NNJB9AEDWZPFOBSBQBXBFPYSRCE9SVIHRI9BJAGLSCAMMRUFSQRIJ' address = b'ROJLHG9AIQYLSNXZMUABJCVOMCZFILEAVNWKKK9CG9JWISIWX9VCDHCXOIYRFYVUAOAMYGFZWDQWLWHJWTXKJMSPZC' bot_api = api(seed) bot_db = Database('test_db.db') address_index = bot_db.get_address_index() new_address = bot_api.get_new_address(address_index) starting_balance = bot_api.get_balance(address) start_time = time.time() bundle = None try: bundle = bot_api.send_transfer(address, 1, new_address, address_index) except: self.fail('Transfer Failed') validator = BundleValidator(bundle) self.assertTrue(validator.is_valid()) end_time = time.time() end_balance = bot_api.get_balance(address) self.assertEqual(end_balance, starting_balance + 1) print("Time elapsed: {0}s".format(end_time - start_time))
def test_get_iota_tip_amount_sunny_6(self): bot_api = api(test_seed) class Message: body = 'asdkjlfjaslkd+0.01miotaasdklfjlkasd' self.assertEqual(bot_api.get_iota_tip_amount(Message), 10000)
def test_get_iota_tip_amount_sunny_3(self): bot_api = api(test_seed) class Message: body = 'askldjflaksdj+1024iotaasdfkljas' self.assertEqual(bot_api.get_iota_tip_amount(Message), 1024)
def test_get_message_address_rainy_1(self): bot_api = api(test_seed) class Message: body = 'asdflkjasdklf' self.assertEqual(bot_api.get_message_address(Message), None)
def test_is_tip_rainy_1(self): bot_api = api(test_seed) class Comment: body = 'asdklfjaskljfas' self.assertFalse(bot_api.is_tip(Comment))
def test_is_tip_sunny_6(self): bot_api = api(test_seed) class Comment: body = 'aslkdjfslakdjf+0.01miotaklajsdklfa' self.assertTrue(bot_api.is_tip(Comment))
def test_get_iota_amount_sunny_4(self): bot_api = api(test_seed) class Message: body = 'asdlkfjas1024miota' self.assertEqual(bot_api.get_iota_amount(Message), 1024000000)
def test_get_iota_amount_rainy_1(self): bot_api = api(test_seed) class Message: body = 'asdklfjhaslkdf' self.assertEqual(bot_api.get_iota_amount(Message), None)
def test_get_iota_tip_amount_rainy_2(self): bot_api = api(test_seed) class Message: body = 'askldjflaksdj100 iota +1024miotaasdfkljas' self.assertEqual(bot_api.get_iota_tip_amount(Message), 1024000000)
def test_get_iota_tip_amount_rainy_3(self): bot_api = api(test_seed) class Message: body = 'askdlfjaskl' self.assertEqual(bot_api.get_iota_tip_amount(Message), None)
def test_contains_iota_amount_sunny_1(self): bot_api = api(test_seed) class Message: body = 'asdfkjlasdjldklasd' self.assertFalse(bot_api.contains_iota_amount(Message))
def test_is_tip_sunny_4(self): bot_api = api(test_seed) class Comment: body = 'sadklfjasdlk+1024miotaasdfkljasld' self.assertTrue(bot_api.is_tip(Comment))
def test_contains_iota_amount_sunny_4(self): bot_api = api(test_seed) class Message: body = 'asdfkjlasdlkfj1024miotaasjldklasd' self.assertTrue(bot_api.contains_iota_amount(Message))
def test_is_balance_request_sunny_3(self): bot_api = api(test_seed) class Message: subject = 'aasklfjasbalancekjasdflkas' body = 'askldfjasdlkfbalancesadkljflasd' self.assertTrue(bot_api.is_balance_request(Message))
def test_is_deposit_request_sunny_3(self): bot_api = api(test_seed) class Message: subject = 'askdljasdepositasdfkljsad' body = 'aksljhfddepositaslkdj' self.assertTrue(bot_api.is_deposit_request(Message))
def test_get_message_address_sunny_1(self): bot_api = api(test_seed) class Message: body = 'A' * 90 self.assertEqual(bot_api.get_message_address(Message), bytearray('A' * 90, 'utf-8'))
def test_is_balance_request_sunny_2(self): bot_api = api(test_seed) class Message: subject = 'asjkldhas' body = 'askljdflksadbalancesakldjflksad' self.assertTrue(bot_api.is_balance_request(Message))
def test_is_balance_request_rainy_1(self): bot_api = api(test_seed) class Message: subject = 'asdkfljasdk' body = 'asdkfjaklsdf' self.assertFalse(bot_api.is_balance_request(Message))
def test_is_help_request_sunny_1(self): bot_api = api(test_seed) class Message: subject = 'askljdlfjaslkd' body = 'askldfalskd' self.assertFalse(bot_api.is_help_request(Message))
def test_is_help_request_sunny_3(self): bot_api = api(test_seed) class Message: subject = 'askljdfalhelpasklfjaslkd' body = 'askldhelpfalskd' self.assertTrue(bot_api.is_help_request(Message))
def test_is_deposit_requests_sunny_1(self): bot_api = api(test_seed) class Message: subject = 'asdkfjsaddepositsadlkfjlasd' body = 'asdjalksjdsa' self.assertTrue(bot_api.is_deposit_request(Message))
def test_is_help_request_sunny_2(self): bot_api = api(test_seed) class Message: subject = 'asklkd' body = 'askldfhelpalskd' self.assertTrue(bot_api.is_help_request(Message))
def test_is_donation_request_sunny_1(self): bot_api = api(test_seed) class Message: subject = 'kljasjdfklaslkas;jdfas' body = 'askdlfjasdlk' self.assertFalse(bot_api.is_donation_request(Message))
def test_is_withdraw_request_sunny_3(self): bot_api = api(test_seed) class Message: subject = 'asdklfjlaksd' body = 'askljfasdf' self.assertFalse(bot_api.is_withdraw_request(Message))
def test_is_deposit_request_rainy_1(self): bot_api = api(test_seed) class Message: subject = 'askldjflkasd' body = 'askljfslad' self.assertFalse(bot_api.is_deposit_request(Message))
def test_is_balance_request_sunny_1(self): bot_api = api(test_seed) class Message: subject = 'asklfjaskldbalanceasdkfljasd' body = 'sakjalhfklas' self.assertTrue(bot_api.is_balance_request(Message))
def test_is_deposit_request_sunny_2(self): bot_api = api(test_seed) class Message: subject = 'asjdkhasjkd' body = 'asdfkjasddepositklsafdj;lsdjf' self.assertTrue(bot_api.is_deposit_request(Message))
def test_is_withdraw_request_sunny_3(self): bot_api = api(test_seed) class Message: subject = 'sakljlaskdwithdrawfkljaslkdf' body = 'askjldhaswithdrawkladjskld' self.assertTrue(bot_api.is_withdraw_request(Message))