Ejemplo n.º 1
0
def test_wallet_info(config):
    response_data = {
        'data': {
            'address': 'simple_address',
            'eth_balance': 13,
            'skale_balance': 123
        }
    }
    response_mock = MagicMock()
    response_mock.status_code = requests.codes.ok
    response_mock.json = Mock(return_value=response_data)
    result = run_command_mock('core.wallet.get_request',
                              response_mock,
                              wallet_info)
    assert result.exit_code == 0
    expected = (
        '--------------------------------------------------\n'
        'Address: simple_address\n'
        'ETH balance: 13 ETH\n'
        'SKALE balance: 123 SKALE\n'
        '--------------------------------------------------\n'
    )
    assert result.output == expected

    result = run_command_mock('core.wallet.get_request',
                              response_mock,
                              wallet_info,
                              ['--format', 'json'])
    assert result.exit_code == 0
    expected = (
        "{'address': 'simple_address', "
        "'eth_balance': 13, 'skale_balance': 123}\n"
    )
    assert result.output == expected
Ejemplo n.º 2
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
Ejemplo n.º 3
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'
Ejemplo n.º 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
Ejemplo n.º 5
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
Ejemplo n.º 6
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'
Ejemplo n.º 7
0
def test_generate_already_exists(resource_alloc_config):
    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 == 'Resource allocation file is already exists\n'
        assert result.exit_code == 0

        result = run_command_mock('node_cli.utils.helper.post_request',
                                  resp_mock, generate,
                                  ['./tests/test-env', '--yes', '--force'])
        assert result.output == (f'Resource allocation file generated: '
                                 f'{RESOURCE_ALLOCATION_FILEPATH}\n')
        assert result.exit_code == 0
Ejemplo n.º 8
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
Ejemplo n.º 9
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
Ejemplo n.º 10
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
Ejemplo n.º 11
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
Ejemplo n.º 12
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
Ejemplo n.º 13
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
Ejemplo n.º 14
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'
Ejemplo n.º 15
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
Ejemplo n.º 16
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