예제 #1
0
 def test_block_chain(self):
     fullConfig = config.getNodeConfig()
     nodes = len(fullConfig)
     config1 = fullConfig["1"]
     config2 = fullConfig["2"]
     db1 = config1["dbName"]
     db2 = config2["dbName"]
     login1 = config1["login"]
     login2 = config2["login"]
     pas1 = config1["pass"]
     pas2 = config2["pass"]
     host1 = config1["dbHost"]
     host2 = config2["dbHost"]
     ts_count = 30
     self.data1 = utils.login(config1["url"], config1['private_key'], 0)
     i = 1
     amountsB = utils.getUserTokenAmounts(host1, db1, login1, pas1)
     sumAmountsBefore = sum(amount[0] for amount in amountsB)
     while i < ts_count:
         contName = self.create_contract(
             config1["url"],
             config1['private_key'],
         )
         i = i + 1
         time.sleep(1)
     time.sleep(120)
     count_contracts1 = utils.getCountDBObjects(host1, db1, login1,
                                                pas1)["contracts"]
     count_contracts2 = utils.getCountDBObjects(host2, db2, login2,
                                                pas2)["contracts"]
     amounts1 = utils.getUserTokenAmounts(host1, db1, login1, pas1)
     amounts2 = utils.getUserTokenAmounts(host2, db2, login2, pas2)
     sumAmounts = sum(amount[0] for amount in amounts1)
     maxBlockId1 = funcs.get_max_block_id(config1["url"],
                                          self.data1["jwtToken"])
     self.data2 = utils.login(config2["url"], config1['private_key'], 0)
     maxBlockId2 = funcs.get_max_block_id(config2["url"],
                                          self.data2["jwtToken"])
     maxBlock = max(maxBlockId2, maxBlockId1)
     hash1 = utils.get_blockchain_hash(host1, db1, login1, pas1, maxBlock)
     hash2 = utils.get_blockchain_hash(host2, db2, login2, pas2, maxBlock)
     node_position = utils.compare_node_positions(host1, db1, login1, pas1,
                                                  maxBlock, nodes)
     dict1 = dict(count_contract=count_contracts1,
                  amounts=str(amounts1),
                  summ=str(sumAmounts),
                  hash=str(hash1),
                  node_pos=str(node_position))
     dict2 = dict(count_contract=count_contracts2,
                  amounts=str(amounts2),
                  summ=str(sumAmountsBefore),
                  hash=str(hash2),
                  node_pos="True")
     msg = "Test two_nodes is faild. contracts: \n"
     msg += str(count_contracts1) + str(amounts1) + str(hash1) + str(
         node_position) + "\n"
     msg += str(count_contracts2) + str(amounts1) + str(hash1) + str(
         node_position) + "\n"
     msg += "Amounts summ: " + str(sumAmounts)
     self.assertDictEqual(dict1, dict2, msg)
예제 #2
0
 def setUp(self):
     global url, token, prKey, pause
     self.config = config.getNodeConfig()
     url = self.config["2"]["url"]
     pause = self.config["1"]["time_wait_tx_in_block"]
     prKey = self.config["1"]['private_key']
     self.data = utils.login(url, prKey, 0)
     token = self.data["jwtToken"]
예제 #3
0
 def test_login(self):
     keys = config.getKeys()
     data1 = utils.login(url, keys["key5"], 0)
     time.sleep(5)
     conf = config.getNodeConfig()
     res = utils.is_wallet_created(conf["1"]["dbHost"], conf["1"]["dbName"],
                                   conf["1"]["login"], conf["1"]["pass"],
                                   data1["key_id"])
     self.assertTrue(res, "Wallet for new user didn't created")
예제 #4
0
 def test_compare_blocks(self):
     conf = config.getNodeConfig()
     time.sleep(30)
     data2 = utils.login(conf['2']['url'], conf['1']['private_key'], 0)
     maxBlockId2 = funcs.get_max_block_id(conf["2"]["url"],
                                          data2["jwtToken"])
     data1 = utils.login(conf['1']['url'], conf['1']['private_key'], 0)
     res = self.get_load_time(conf["1"]["url"], data1["jwtToken"],
                              maxBlockId2)
     msg = "All " + str(maxBlockId2) +\
      " blocks doesn't load in time. Last loaded block is " + str(res['blocks'])
     self.assertLess(res['time'], 12000, msg)
 def setUp(self):
     self.config = config.getNodeConfig()
     global url, prKey, token, dbHost, dbName, login, pas
     self.contracts = config.readFixtures("contracts")
     url = self.config["2"]["url"]
     prKey = self.config["1"]['private_key']
     dbHost = self.config["1"]["dbHost"]
     dbName = self.config["1"]['dbName']
     login = self.config["1"]["login"]
     pas = self.config["1"]['pass']
     self.data = utils.login(url, prKey, 0)
     token = self.data["jwtToken"]
예제 #6
0
 def test_login2(self):
     isOne = False
     keys = config.getKeys()
     data1 = utils.login(url, keys["key3"], 0)
     time.sleep(5)
     conf = config.getNodeConfig()
     res = utils.is_wallet_created(conf["1"]["dbHost"], conf["1"]["dbName"],
                                   conf["1"]["login"], conf["1"]["pass"],
                                   data1["key_id"])
     if res == True:
         data2 = utils.login(url, keys["key1"], 0)
         time.sleep(5)
         isOne = utils.is_wallet_created(conf["1"]["dbHost"],
                                         conf["1"]["dbName"],
                                         conf["1"]["login"],
                                         conf["1"]["pass"], data2["key_id"])
         self.assertTrue(isOne, "Wallet for new user didn't created")
예제 #7
0
 def setUpClass(self):
     global config1, config2, config3, db1, db2, db3, login1, login2, login3
     global pas1, pas2, pas3, host1, host2, host3
     fullConfig = config.getNodeConfig()
     nodes = len(fullConfig)
     config1 = fullConfig["1"]
     config2 = fullConfig["2"]
     config3 = fullConfig["3"]
     db1 = config1["dbName"]
     db2 = config2["dbName"]
     db3 = config3["dbName"]
     login1 = config1["login"]
     login2 = config2["login"]
     login3 = config3["login"]
     pas1 = config1["pass"]
     pas2 = config2["pass"]
     pas3 = config3["pass"]
     host1 = config1["dbHost"]
     host2 = config2["dbHost"]
     host3 = config3["dbHost"]
예제 #8
0
 def setUpClass(self):
     global conf, keys, dataCreater
     conf = config.getNodeConfig()
     keys = config.getKeys()
     dataCreater = utils.login(conf["1"]["url"], conf["1"]["private_key"],
                               0)
     tokenCreater = dataCreater["jwtToken"]
     contract = config.readFixtures("contracts")
     code = "contract CostContract" + contract["for_cost"]["code"]
     data = {
         "Wallet": "",
         "Value": code,
         "ApplicationId": 1,
         "Conditions": "true"
     }
     result = utils.call_contract(conf["1"]["url"],
                                  conf["1"]["private_key"], "NewContract",
                                  data, tokenCreater)
     status = utils.txstatus(conf["1"]["url"],
                             conf["1"]["time_wait_tx_in_block"],
                             result['hash'], tokenCreater)
예제 #9
0
 def setUpClass(self):
     global conf, contract
     conf = config.getNodeConfig()
     contract = config.readFixtures("contracts")
예제 #10
0
 def setUpClass(self):
     global conf, keys
     conf = config.getNodeConfig()
     keys = config.getKeys()
     self.createContracts(self)
예제 #11
0

def voiting(id, url, prKey, token):
    data = {"votingID": id}
    call = utils.call_contract(url, prKey, "VotingDecisionAccept", data, token)

    if not isInBlock(call, url, token):
        print("VotingDecisionAccept " + id + " is failed")
        exit(1)
        return False
    return True


if __name__ == "__main__":
    global dbHost, dbName, login, pas
    conf = config.getNodeConfig()
    url = conf["1"]["url"]
    prKey1 = conf["1"]['private_key']
    prKey2 = conf["2"]['private_key']
    prKey3 = conf["3"]['private_key']
    dbHost = conf["1"]['dbHost']
    dbName = conf["1"]['dbName']
    login = conf["1"]['login']
    pas = conf["1"]['pass']
    data = utils.login(url, prKey1, 0)
    token1 = data["jwtToken"]
    impApp("admin", url, prKey1, token1)
    impApp("system_parameters", url, prKey1, token1)
    impApp("basic", url, prKey1, token1)
    impApp("platform_ecosystem", url, prKey1, token1)
    impApp("language_resources", url, prKey1, token1)