Example #1
0
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)
Example #2
0
    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))
Example #3
0
 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))
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    def test_is_tip_rainy_1(self):
        bot_api = api(test_seed)

        class Comment:
            body = 'asdklfjaskljfas'

        self.assertFalse(bot_api.is_tip(Comment))
Example #8
0
    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))
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
    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)
Example #12
0
    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)
Example #13
0
    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))
Example #14
0
    def test_is_tip_sunny_4(self):
        bot_api = api(test_seed)

        class Comment:
            body = 'sadklfjasdlk+1024miotaasdfkljasld'

        self.assertTrue(bot_api.is_tip(Comment))
Example #15
0
    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))
Example #16
0
    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))
Example #17
0
    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))
Example #18
0
    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'))
Example #19
0
    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))
Example #20
0
    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))
Example #21
0
    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))
Example #22
0
    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))
Example #23
0
    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))
Example #24
0
    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))
Example #25
0
    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))
Example #26
0
    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))
Example #27
0
    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))
Example #28
0
    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))
Example #29
0
    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))
Example #30
0
    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))