Пример #1
0
def test_info():
    payload = {
        'name': 'attractive-ed-asich',
        'id': '0xfb3b68013fa494407b691b4b603d84c66076c0a5ac96a7d6b162d7341d74fa61',
        'owner': '0x1111111111111111111111111111111111111111',
        'part_of_node': 0, 'dkg_status': 3, 'is_deleted': False,
        'first_run': False, 'repair_mode': False
    }
    resp_mock = response_mock(
        requests.codes.ok,
        json_data={'payload': payload, 'status': 'ok'}
    )
    result = run_command_mock('node_cli.utils.helper.requests.get', resp_mock, info_,
                              ['attractive-ed-asich'])
    assert result.output == '       Name                                           Id                                                     Owner                      Part_of_node   Dkg_status   Is_deleted   First_run   Repair_mode\n--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\nattractive-ed-asich   0xfb3b68013fa494407b691b4b603d84c66076c0a5ac96a7d6b162d7341d74fa61   0x1111111111111111111111111111111111111111   0              3            False        False       False      \n'  # noqa
    assert result.exit_code == 0

    payload = ['error']
    resp_mock = response_mock(
        requests.codes.ok,
        json_data={'payload': payload, 'status': 'error'}
    )
    result = run_command_mock('node_cli.utils.helper.requests.get', resp_mock, info_,
                              ['schain not found'])
    assert result.output == f'Command failed with following errors:\n--------------------------------------------------\nerror\n--------------------------------------------------\nYou can find more info in {G_CONF_HOME}.skale/.skale-cli-log/debug-node-cli.log\n'  # noqa
    assert result.exit_code == 3
Пример #2
0
def test_schains(config):
    resp_mock = response_mock(
        requests.codes.ok,
        json_data={'data': RESPONSE_DATA, 'res': 1}
    )
    result = run_command_mock('core.helper.get_request', resp_mock, schains)
    assert result.exit_code == 0
    assert result.output == "       Name                    Status                   Started At           Image   \n-------------------------------------------------------------------------------------\nskale_schain_test    Running                       Oct 08 2019 13:59:54   image-skale\nskale_schain_test2   Running (Jan 01 1 00:00:00)   Oct 08 2019 13:59:54   image-skale\n"  # noqa

    resp_mock = response_mock(
        requests.codes.ok,
        json_data={'data': RESPONSE_DATA, 'res': 0}
    )
    result = run_command_mock('core.helper.get_request', resp_mock, schains)
    assert result.exit_code == 1
    assert result.output == ('----------------------------------'
                             '----------------\n')

    resp_mock = response_mock(
        requests.codes.ok,
        None
    )
    result = run_command_mock('core.helper.get_request', resp_mock, schains)
    assert result.exit_code == 1
    assert result.output == ''

    resp_mock = response_mock(
        -1,
        {'data': RESPONSE_DATA, 'res': 1}
    )
    result = run_command_mock('core.helper.get_request', resp_mock, schains)
    assert result.exit_code == 0
    assert result.output == 'Request failed, status code: -1\n'
Пример #3
0
def test_metrics(config):
    response_data = {
        'bounties': [
            ['2019-10-09 02:46:50', 4018775720164609053497, 0, 1],
            ['2019-10-09 03:47:00', 4018775720164609053497, 0, 1],
            ['2019-10-09 04:47:11', 4018775720164609053497, 0, 1],
            ['2019-10-09 05:47:21', 4018775720164609053497, 0, 1],
            ['2019-10-09 06:47:32', 4018775720164609053497, 0, 1]
        ]
    }
    resp_mock = response_mock(
        requests.codes.ok,
        json_data={'data': response_data, 'res': 1}
    )
    result = run_command_mock('core.helper.get_request', resp_mock, first)
    assert result.exit_code == 0
    # assert result.output == 'Please wait - collecting metrics from blockchain...\n       Date                   Bounty           Downtime   Latency\n-----------------------------------------------------------------\n2019-10-09 02:46:50   4018775720164609053497   0          1      \n2019-10-09 03:47:00   4018775720164609053497   0          1      \n2019-10-09 04:47:11   4018775720164609053497   0          1      \n2019-10-09 05:47:21   4018775720164609053497   0          1      \n2019-10-09 06:47:32   4018775720164609053497   0          1      \n'  # noqa

    result = run_command_mock('core.helper.get_request', resp_mock, first)
    assert result.exit_code == 0
    # assert result.output == 'Please wait - collecting metrics from blockchain...\n       Date                   Bounty           Downtime   Latency\n-----------------------------------------------------------------\n2019-10-09 02:46:50   4018775720164609053497   0          1      \n2019-10-09 03:47:00   4018775720164609053497   0          1      \n2019-10-09 04:47:11   4018775720164609053497   0          1      \n2019-10-09 05:47:21   4018775720164609053497   0          1      \n2019-10-09 06:47:32   4018775720164609053497   0          1      \n'  # noqa

    for func in (first, last):
        resp_mock = response_mock(
            requests.codes.ok,
            json_data={'data': {'bounties': []}, 'res': 1}
        )
        result = run_command_mock('core.helper.get_request', resp_mock, func)
        assert result.exit_code == 0
Пример #4
0
def test_ls(config):
    os.environ['TZ'] = 'Europe/London'
    time.tzset()
    response_data = [{
        'name': 'test_schain1',
        'owner': '0x123',
        'indexInOwnerList': 3,
        'partOfNode': 0,
        'lifetime': 5,
        'startDate': 1570115385,
        'deposit': 1000000000000000000,
        'index': 3
    }, {
        'name': 'crazy_cats1',
        'owner': '0x321',
        'indexInOwnerList': 8,
        'partOfNode': 0,
        'lifetime': 5,
        'startDate': 1570469410,
        'deposit': 1000000000000000000,
        'index': 8
    }]
    resp_mock = response_mock(requests.codes.ok,
                              json_data={
                                  'data': response_data,
                                  'res': 1
                              })
    result = run_command_mock('core.helper.get_request', resp_mock, ls)
    assert result.exit_code == 0
    assert result.output == '    Name       Owner   Size   Lifetime        Created At              Deposit      \n-----------------------------------------------------------------------------------\ntest_schain1   0x123   0      5          Oct 03 2019 16:09:45   1000000000000000000\ncrazy_cats1    0x321   0      5          Oct 07 2019 18:30:10   1000000000000000000\n'  # noqa
Пример #5
0
def test_node_info_node_about(config):
    response_data = {
        'libraries': {
            'javascript': 'N/A',
            'python': '0.89.0'
        },
        'contracts': {
            'token': '0x3',
            'manager': '0x23'
        },
        'network': {
            'endpoint': 'ws://0.0.0.0:8080'
        },
        'local_wallet': {
            'address': '0xf',
            'eth_balance_wei': '15',
            'skale_balance_wei': '84312304',
            'eth_balance': '2.424',
            'skale_balance': '323.123'
        }
    }
    resp_mock = response_mock(requests.codes.ok,
                              json_data={
                                  'data': response_data,
                                  'res': 1
                              })
    result = run_command_mock('core.core.get_request', resp_mock, node_about)
    assert result.exit_code == 0
    assert result.output == "{'libraries': {'javascript': 'N/A', 'python': '0.89.0'}, 'contracts': {'token': '0x3', 'manager': '0x23'}, 'network': {'endpoint': 'ws://0.0.0.0:8080'}, 'local_wallet': {'address': '0xf', 'eth_balance_wei': '15', 'skale_balance_wei': '84312304', 'eth_balance': '2.424', 'skale_balance': '323.123'}}\n"  # noqa
Пример #6
0
def test_ls():
    os.environ['TZ'] = 'Europe/London'
    time.tzset()
    payload = [
        {
            'name': 'test_schain1', 'mainnetOwner': '0x123',
            'indexInOwnerList': 3, 'partOfNode': 0,
            'lifetime': 5, 'startDate': 1570115385,
            'deposit': 1000000000000000000, 'index': 3, 'generation': 1, 'originator': '0x465'
        },
        {
            'name': 'crazy_cats1',
            'mainnetOwner': '0x321',
            'indexInOwnerList': 8, 'partOfNode': 0,
            'lifetime': 5, 'startDate': 1570469410,
            'deposit': 1000000000000000000, 'index': 8, 'generation': 0, 'originator': '0x0'
        }
    ]
    resp_mock = response_mock(
        requests.codes.ok,
        json_data={'payload': payload, 'status': 'ok'}
    )
    result = run_command_mock('node_cli.utils.helper.requests.get', resp_mock, ls)
    assert result.exit_code == 0
    assert result.output == '    Name       Owner   Size   Lifetime        Created At              Deposit         Generation   Originator\n-------------------------------------------------------------------------------------------------------------\ntest_schain1   0x123   0      5          Oct 03 2019 16:09:45   1000000000000000000   1            0x465     \ncrazy_cats1    0x321   0      5          Oct 07 2019 18:30:10   1000000000000000000   0            0x0       \n'  # noqa
Пример #7
0
def test_node_info_node_info_in_maintenance():
    payload = {
        'node_info': {
            'name': 'test',
            'ip': '0.0.0.0',
            'publicIP': '1.1.1.1',
            'port': 10001,
            'publicKey': '0x7',
            'start_date': 1570114466,
            'leaving_date': 0,
            'last_reward_date': 1570628924,
            'second_address': 0,
            'status': 3,
            'id': 32,
            'owner': '0x23',
            'domain_name': 'skale.test'
        }
    }

    resp_mock = response_mock(requests.codes.ok,
                              json_data={
                                  'payload': payload,
                                  'status': 'ok'
                              })
    result = run_command_mock('node_cli.utils.helper.requests.get', resp_mock,
                              node_info)
    assert result.exit_code == 0
    assert result.output == '--------------------------------------------------\nNode info\nName: test\nID: 32\nIP: 0.0.0.0\nPublic IP: 1.1.1.1\nPort: 10001\nDomain name: skale.test\nStatus: In Maintenance\n--------------------------------------------------\n'  # noqa
Пример #8
0
def test_node_info_node_info_not_created():
    payload = {
        'node_info': {
            'name': 'test',
            'ip': '0.0.0.0',
            'publicIP': '1.1.1.1',
            'port': 10001,
            'publicKey': '0x7',
            'start_date': 1570114466,
            'leaving_date': 0,
            'last_reward_date': 1570628924,
            'second_address': 0,
            'status': 5,
            'id': 32,
            'owner': '0x23',
            'domain_name': 'skale.test'
        }
    }

    resp_mock = response_mock(requests.codes.ok,
                              json_data={
                                  'payload': payload,
                                  'status': 'ok'
                              })
    result = run_command_mock('node_cli.utils.helper.requests.get', resp_mock,
                              node_info)
    assert result.exit_code == 0
    assert result.output == 'This SKALE node is not registered on SKALE Manager yet\n'
Пример #9
0
def test_checks():
    payload = [{
        "name": "test_schain",
        "healthchecks": {
            "config_dir": True,
            "dkg": False,
            "config": False,
            "volume": False,
            "skaled_container": False,
            "ima_container": False,
            "firewall_rules": False,
            "rpc": False,
            "blocks": False
        }
    }]
    resp_mock = response_mock(requests.codes.ok,
                              json_data={
                                  'payload': payload,
                                  'status': 'ok'
                              })
    result = run_command_mock('node_cli.utils.helper.requests.get', resp_mock,
                              schains)

    assert result.exit_code == 0
    assert result.output == 'sChain Name   Config directory    DKG    Config file   Volume   Container    IMA    Firewall    RPC    Blocks\n-------------------------------------------------------------------------------------------------------------\ntest_schain   True               False   False         False    False       False   False      False   False \n'  # noqa

    result = run_command_mock('node_cli.utils.helper.requests.get', resp_mock,
                              schains, ['--json'])

    assert result.exit_code == 0
    assert result.output == '[{"name": "test_schain", "healthchecks": {"config_dir": true, "dkg": false, "config": false, "volume": false, "skaled_container": false, "ima_container": false, "firewall_rules": false, "rpc": false, "blocks": false}}]\n'  # noqa
Пример #10
0
def test_dkg():
    os.environ['TZ'] = 'Europe/London'
    time.tzset()
    payload = [
        {
            'name': 'melodic-aldhibah',
            'added_at': 1578497212.645233,
            'dkg_status': 2,
            'dkg_status_name': 'IN_PROGRESS',
            'is_deleted': False
        }
    ]
    resp_mock = response_mock(
        requests.codes.ok,
        json_data={'payload': payload, 'status': 'ok'}
    )
    result = run_command_mock('node_cli.utils.helper.requests.get',
                              resp_mock, dkg)
    assert result.exit_code == 0
    assert result.output == '  sChain Name      DKG Status          Added At         sChain Status\n---------------------------------------------------------------------\nmelodic-aldhibah   IN_PROGRESS   Jan 08 2020 15:26:52   Exists       \n'  # noqa

    result = run_command_mock('node_cli.utils.helper.requests.get',
                              resp_mock, dkg, ['--all'])
    assert result.exit_code == 0
    assert result.output == '  sChain Name      DKG Status          Added At         sChain Status\n---------------------------------------------------------------------\nmelodic-aldhibah   IN_PROGRESS   Jan 08 2020 15:26:52   Exists       \n'  # noqa
Пример #11
0
def test_show(resource_alloc_config):
    resp_mock = response_mock(requests.codes.created)
    write_json(RESOURCE_ALLOCATION_FILEPATH, TEST_CONFIG)
    result = run_command_mock('node_cli.utils.helper.post_request', resp_mock,
                              show)
    assert result.output == json.dumps(TEST_CONFIG, indent=4) + '\n'
    assert result.exit_code == 0
Пример #12
0
def test_ls():
    resp_mock = response_mock(
        requests.codes.ok,
        json_data={'data': RESPONSE_DATA, 'res': 1}
    )
    result = run_command_mock('core.helper.get_request', resp_mock, ls)
    assert result.exit_code == 0
    assert result.output == '       Name                    Status                   Started At           Image   \n-------------------------------------------------------------------------------------\nskale_schain_test    Running                       Oct 08 2019 13:59:54   image-skale\nskale_schain_test2   Running (Jan 01 1 00:00:00)   Oct 08 2019 13:59:54   image-skale\n'  # noqa
Пример #13
0
def test_purge(config):
    params = ['--yes']
    resp_mock = response_mock(requests.codes.created)
    with mock.patch('core.node.subprocess.run'):
        result = run_command_mock('core.node.post', resp_mock, purge_node,
                                  params)
        assert result.exit_code == 0
        assert result.output == ''  # noqa
Пример #14
0
def test_maintenance_on():
    resp_mock = response_mock(requests.codes.ok, {
        'status': 'ok',
        'payload': None
    })
    result = run_command_mock('node_cli.utils.helper.requests.post', resp_mock,
                              set_node_in_maintenance, ['--yes'])
    assert result.exit_code == 0
    assert result.output == 'Setting maintenance mode on...\nNode is successfully set in maintenance mode\n'  # noqa
Пример #15
0
def test_maintenance_off(mocked_g_config):
    resp_mock = response_mock(requests.codes.ok, {
        'status': 'ok',
        'payload': None
    })
    result = run_command_mock('node_cli.utils.helper.requests.post', resp_mock,
                              remove_node_from_maintenance)
    assert result.exit_code == 0
    assert result.output == 'Setting maintenance mode off...\nNode is successfully removed from maintenance mode\n'  # noqa
Пример #16
0
def test_init_node(config):
    resp_mock = response_mock(requests.codes.created)
    with mock.patch('subprocess.run'), \
            mock.patch('cli.node.install_host_dependencies'), \
            mock.patch('core.node.prepare_host'), \
            mock.patch('core.host.init_data_dir'):
        result = run_command_mock('core.node.post', resp_mock, init_node,
                                  ['--env-file', './tests/test-env'])
        assert result.exit_code == 0
        assert result.output == ''  # noqa
Пример #17
0
def test_wallet_send():
    resp_mock = response_mock(requests.codes.ok, {
        'status': 'ok',
        'payload': None
    })
    result = run_command_mock(
        'node_cli.utils.helper.requests.post', resp_mock, send,
        ['0x00000000000000000000000000000000', '10', '--yes'])
    assert result.exit_code == 0
    assert result.output == 'Funds were successfully transferred\n'  # noqa
Пример #18
0
def test_get_schain_config():
    response_data = {
        'nodeInfo': {
            'nodeID': 2,
            'nodeName': 'testnet-1',
            'basePort': 10011,
            'httpRpcPort': 10009,
            'httpsRpcPort': 11118,
            'wsRpcPort': 10118,
            'wssRpcPort': 13219,
            'bindIP': '123.123.123.123'
        },
        'sChain': {
            'schainID':
            1,
            'schainName':
            'test1',
            'nodes': [{
                'nodeID': 2,
                'nodeName': 'testnet-1',
                'basePort': 10011,
                'httpRpcPort': 10013,
                'httpsRpcPort': 10018,
                'wsRpcPort': 10014,
                'wssRpcPort': 10019,
                'publicKey': 'public_key',
                'owner': '0xe3213',
                'schainIndex': 1,
                'ip': '213.13.123.13',
                'publicIP': '1.1.1.1'
            }, {
                'nodeID': 0,
                'nodeName': 'testnet-2',
                'basePort': 10077,
                'httpRpcPort': 10079,
                'httpsRpcPort': 10084,
                'wsRpcPort': 10080,
                'wssRpcPort': 10085,
                'publicKey': 'public_key352',
                'owner': '0x323',
                'schainIndex': 2,
                'ip': '2.2.2.2',
                'publicIP': '3.3.3.3'
            }]
        }
    }
    resp_mock = response_mock(requests.codes.ok,
                              json_data={
                                  'data': response_data,
                                  'res': 1
                              })
    result = run_command_mock('core.helper.get_request', resp_mock,
                              get_schain_config, ['test1'])
    assert result.exit_code == 0
    assert result.output == "{'nodeInfo': {'basePort': 10011,\n              'bindIP': '123.123.123.123',\n              'httpRpcPort': 10009,\n              'httpsRpcPort': 11118,\n              'nodeID': 2,\n              'nodeName': 'testnet-1',\n              'wsRpcPort': 10118,\n              'wssRpcPort': 13219},\n 'sChain': {'nodes': [{'basePort': 10011,\n                       'httpRpcPort': 10013,\n                       'httpsRpcPort': 10018,\n                       'ip': '213.13.123.13',\n                       'nodeID': 2,\n                       'nodeName': 'testnet-1',\n                       'owner': '0xe3213',\n                       'publicIP': '1.1.1.1',\n                       'publicKey': 'public_key',\n                       'schainIndex': 1,\n                       'wsRpcPort': 10014,\n                       'wssRpcPort': 10019},\n                      {'basePort': 10077,\n                       'httpRpcPort': 10079,\n                       'httpsRpcPort': 10084,\n                       'ip': '2.2.2.2',\n                       'nodeID': 0,\n                       'nodeName': 'testnet-2',\n                       'owner': '0x323',\n                       'publicIP': '3.3.3.3',\n                       'publicKey': 'public_key352',\n                       'schainIndex': 2,\n                       'wsRpcPort': 10080,\n                       'wssRpcPort': 10085}],\n            'schainID': 1,\n            'schainName': 'test1'}}\n"  # noqa
Пример #19
0
def test_generate():
    safe_mkdir(NODE_DATA_PATH)
    resp_mock = response_mock(requests.codes.created)
    with mock.patch('node_cli.core.resources.get_disk_size',
                    return_value=BIG_DISK_SIZE):
        result = run_command_mock('node_cli.utils.helper.post_request',
                                  resp_mock, generate,
                                  ['./tests/test-env', '--yes'])
    assert result.output == (f'Resource allocation file generated: '
                             f'{RESOURCE_ALLOCATION_FILEPATH}\n')
    assert result.exit_code == 0
Пример #20
0
def test_turn_off_maintenance_on(mocked_g_config):
    resp_mock = response_mock(requests.codes.ok, {
        'status': 'ok',
        'payload': None
    })
    with mock.patch('subprocess.run', new=subprocess_run_mock), \
            mock.patch('node_cli.core.node.turn_off_op'), \
            mock.patch('node_cli.core.node.is_node_inited', return_value=True):
        result = run_command_mock('node_cli.utils.helper.requests.post',
                                  resp_mock, _turn_off,
                                  ['--maintenance-on', '--yes'])
    assert result.exit_code == 0
    assert result.output == 'Setting maintenance mode on...\nNode is successfully set in maintenance mode\n'  # noqa
Пример #21
0
def test_register_with_no_alloc(mocked_g_config):
    resp_mock = response_mock(requests.codes.ok, {
        'status': 'ok',
        'payload': None
    })
    result = run_command_mock('node_cli.utils.helper.requests.post',
                              resp_mock,
                              register_node,
                              ['--name', 'test-node', '-d', 'skale.test'],
                              input='0.0.0.0\n')
    assert result.exit_code == 8
    print(repr(result.output))
    assert result.output == f'Enter node public IP: 0.0.0.0\nCommand failed with following errors:\n--------------------------------------------------\nNode hasn\'t been inited before.\nYou should run < skale node init >\n--------------------------------------------------\nYou can find more info in {G_CONF_HOME}.skale/.skale-cli-log/debug-node-cli.log\n'  # noqa
Пример #22
0
def test_node_signature():
    signature_sample = '0x1231231231'
    response_data = {
        'status': 'ok',
        'payload': {
            'signature': signature_sample
        }
    }
    resp_mock = response_mock(requests.codes.ok, json_data=response_data)
    result = run_command_mock('node_cli.utils.helper.requests.get', resp_mock,
                              signature, ['1'])
    assert result.exit_code == 0
    assert result.output == f'Signature: {signature_sample}\n'
Пример #23
0
def test_set_domain_name():
    resp_mock = response_mock(requests.codes.ok, {
        'status': 'ok',
        'payload': None
    })

    with mock.patch('node_cli.utils.decorators.is_node_inited',
                    return_value=True):
        result = run_command_mock('node_cli.utils.helper.requests.post',
                                  resp_mock, _set_domain_name,
                                  ['-d', 'skale.test', '--yes'])
    assert result.exit_code == 0
    assert result.output == 'Setting new domain name: skale.test\nDomain name successfully changed\n'  # noqa
Пример #24
0
def test_wallet_send_with_error():
    resp_mock = response_mock(
        requests.codes.ok,
        {
            'status': 'error',
            'payload': ['Strange error']
        },
    )
    result = run_command_mock(
        'node_cli.utils.helper.requests.post', resp_mock, send,
        ['0x00000000000000000000000000000000', '10', '--yes'])
    assert result.exit_code == 3
    assert result.output == f'Command failed with following errors:\n--------------------------------------------------\nStrange error\n--------------------------------------------------\nYou can find more info in {G_CONF_HOME}.skale/.skale-cli-log/debug-node-cli.log\n'  # noqa
Пример #25
0
def test_register_node_with_default_port(resource_alloc, mocked_g_config):
    resp_mock = response_mock(requests.codes.ok, {
        'status': 'ok',
        'payload': None
    })
    with mock.patch('node_cli.utils.decorators.is_node_inited',
                    return_value=True):
        result = run_command_mock('node_cli.utils.helper.requests.post',
                                  resp_mock,
                                  register_node,
                                  ['--name', 'test-node', '-d', 'skale.test'],
                                  input='0.0.0.0\n')
    assert result.exit_code == 0
    assert result.output == 'Enter node public IP: 0.0.0.0\nNode registered in SKALE manager.\nFor more info run < skale node info >\n'  # noqa
Пример #26
0
def test_repair():
    os.environ['TZ'] = 'Europe/London'
    time.tzset()
    payload = []
    resp_mock = response_mock(
        requests.codes.ok,
        json_data={'payload': payload, 'status': 'ok'}
    )
    result = run_command_mock('node_cli.utils.helper.requests.post', resp_mock, repair,
                              ['test-schain', '--yes'])
    assert result.output == 'Schain has been set for repair\n'
    assert result.exit_code == 0

    payload = ['error']
    resp_mock = response_mock(
        requests.codes.ok,
        json_data={'payload': payload, 'status': 'error'}
    )
    result = run_command_mock('node_cli.utils.helper.requests.post', resp_mock, repair,
                              ['test-schain', '--yes'])
    print(repr(result.output))
    assert result.exit_code == 3
    assert result.output == f'Command failed with following errors:\n--------------------------------------------------\nerror\n--------------------------------------------------\nYou can find more info in {G_CONF_HOME}.skale/.skale-cli-log/debug-node-cli.log\n'  # noqa
Пример #27
0
def test_exit_status():
    payload = {
        'status': 'ACTIVE',
        'data': [{'name': 'test', 'status': 'ACTIVE'}],
        'exit_time': 0
    }

    resp_mock = response_mock(
        requests.codes.ok,
        json_data={'payload': payload, 'status': 'ok'}
    )
    result = run_command_mock(
        'node_cli.utils.helper.requests.get', resp_mock, status, ['--format', 'json'])
    assert result.exit_code == 0
    assert result.output == "{'status': 'ACTIVE', 'data': [{'name': 'test', 'status': 'ACTIVE'}], 'exit_time': 0}\n" # noqa
Пример #28
0
def test_update_node(config):
    params = ['--env-file', './tests/test-env', '--yes']
    resp_mock = response_mock(requests.codes.created)
    with mock.patch('subprocess.run'), \
            mock.patch('cli.node.install_host_dependencies'), \
            mock.patch('core.node.get_flask_secret_key'), \
            mock.patch('core.node.save_env_params'), \
            mock.patch('core.host.init_data_dir'):
        result = run_command_mock('core.node.post',
                                  resp_mock,
                                  update_node,
                                  params,
                                  input='/dev/sdp')
        assert result.exit_code == 0
        assert result.output == ''
Пример #29
0
def test_init_node(no_resource_file):  # todo: write new init node test
    resp_mock = response_mock(requests.codes.created)
    assert not os.path.isfile(RESOURCE_ALLOCATION_FILEPATH)
    env_filepath = './tests/test-env'
    with mock.patch('subprocess.run', new=subprocess_run_mock), \
            mock.patch('node_cli.core.resources.get_disk_size',
                       return_value=BIG_DISK_SIZE), \
            mock.patch('node_cli.core.host.prepare_host'), \
            mock.patch('node_cli.core.host.init_data_dir'), \
            mock.patch('node_cli.core.node.init_op'), \
            mock.patch('node_cli.core.node.is_base_containers_alive',
                       return_value=True), \
            mock.patch('node_cli.utils.helper.post_request',
                       resp_mock):
        init(env_filepath)
        assert os.path.isfile(RESOURCE_ALLOCATION_FILEPATH)
Пример #30
0
def test_dump(config):
    archive_filename = 'skale-logs-dump-2019-10-08-17:40:00.tar.gz'
    resp_mock = response_mock(requests.codes.ok,
                              headers={
                                  'Content-Disposition':
                                  f'attachment; filename="{archive_filename}"'
                              },
                              raw=BytesIO())
    with mock.patch('requests.get') as req_get_mock:
        req_get_mock.return_value.__enter__.return_value = resp_mock
        result = run_command(dump, ['.'])
        assert result.exit_code == 0
        assert result.output == f'File {archive_filename} downloaded\n'

    if os.path.exists(archive_filename):
        os.remove(archive_filename)