Skip to content

Commit

Permalink
[explorer/rest]: added rest namespace unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
AnthonyLaw committed Nov 7, 2023
1 parent dbb0e69 commit b9fd6dc
Showing 1 changed file with 107 additions and 1 deletion.
108 changes: 107 additions & 1 deletion explorer/rest/tests/test_rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

from rest import create_app

from .test.DatabaseTestUtils import BLOCK_VIEWS, DatabaseConfig, initialize_database
from .test.DatabaseTestUtils import BLOCK_VIEWS, NAMESPACE_VIEWS, DatabaseConfig, initialize_database

DATABASE_CONFIG_INI = 'db_config.ini'

Expand All @@ -17,6 +17,11 @@

EXPECTED_BLOCK_VIEW_2 = BLOCK_VIEWS[1]

EXPECTED_NAMESPACE_VIEW_1 = NAMESPACE_VIEWS[0]

EXPECTED_NAMESPACE_VIEW_2 = NAMESPACE_VIEWS[1]


# endregion

# region fixtures
Expand Down Expand Up @@ -180,3 +185,104 @@ def test_api_nem_blocks_invalid_sort(client): # pylint: disable=redefined-outer


# endregion


# region /namespace/<name>

def _assert_get_api_nem_namespace_by_name(client, name, expected_status_code, expected_result): # pylint: disable=redefined-outer-name
# Act:
response = client.get(f'/api/nem/namespace/{name}')

print(response.json)

# Assert:
assert expected_status_code == response.status_code
assert expected_result == response.json


def test_api_nem_namespace_by_name(client): # pylint: disable=redefined-outer-name
_assert_get_api_nem_namespace_by_name(client, 'oxford', 200, EXPECTED_NAMESPACE_VIEW_1.to_dict())


def test_api_nem_namespace_non_exist(client): # pylint: disable=redefined-outer-name
_assert_get_api_nem_namespace_by_name(client, 'non_exist_namespace', 404, {
'message': 'Resource not found',
'status': 404
})

# endregion


# region /namespaces

def _get_api_nem_namespaces(client, **query_params): # pylint: disable=redefined-outer-name
query_string = '&'.join(f'{key}={val}' for key, val in query_params.items())
return client.get(f'/api/nem/namespaces?{query_string}')


def _assert_get_api_nem_namespaces(client, expected_code, expected_result, **query_params): # pylint: disable=redefined-outer-name
# Act:
response = _get_api_nem_namespaces(client, **query_params)

# Assert:
assert expected_code == response.status_code
assert expected_result == response.json


def test_api_nem_namespaces_without_params(client): # pylint: disable=redefined-outer-name, invalid-name
# Act:
response = _get_api_nem_namespaces(client)

# Assert:
assert 200 == response.status_code
assert [EXPECTED_NAMESPACE_VIEW_2.to_dict(), EXPECTED_NAMESPACE_VIEW_1.to_dict()] == response.json


def test_api_nem_namespaces_applies_limit(client): # pylint: disable=redefined-outer-name, invalid-name
_assert_get_api_nem_namespaces(client, 200, [EXPECTED_NAMESPACE_VIEW_2.to_dict()], limit=1)


def test_api_nem_namespaces_applies_offset(client): # pylint: disable=redefined-outer-name, invalid-name
_assert_get_api_nem_namespaces(client, 200, [EXPECTED_NAMESPACE_VIEW_1.to_dict()], offset=1)


def test_api_nem_namespaces_applies_sorted_by_id_desc(client): # pylint: disable=redefined-outer-name, invalid-name
_assert_get_api_nem_namespaces(client, 200, [EXPECTED_NAMESPACE_VIEW_2.to_dict(), EXPECTED_NAMESPACE_VIEW_1.to_dict()], sort='desc')


def test_api_nem_namespaces_applies_sorted_by_id_asc(client): # pylint: disable=redefined-outer-name, invalid-name
_assert_get_api_nem_namespaces(client, 200, [EXPECTED_NAMESPACE_VIEW_1.to_dict(), EXPECTED_NAMESPACE_VIEW_2.to_dict()], sort='asc')


def test_api_nem_namespaces_with_all_params(client): # pylint: disable=redefined-outer-name, invalid-name
_assert_get_api_nem_namespaces(client, 200, [EXPECTED_NAMESPACE_VIEW_2.to_dict()], limit=1, offset=1, sort='asc')


def _assert_get_api_nem_namespaces_fail(client, **query_params): # pylint: disable=redefined-outer-name
# Act:
response = _get_api_nem_namespaces(client, **query_params)

# Assert:
assert 400 == response.status_code
assert {
'message': 'Bad request',
'status': 400
} == response.json


def test_api_nem_namespaces_invalid_limit(client): # pylint: disable=redefined-outer-name, invalid-name
_assert_get_api_nem_namespaces_fail(client, limit=-1)
_assert_get_api_nem_namespaces_fail(client, limit='invalid')


def test_api_nem_namespaces_invalid_offset(client): # pylint: disable=redefined-outer-name, invalid-name
_assert_get_api_nem_namespaces_fail(client, offset=-1)
_assert_get_api_nem_namespaces_fail(client, offset='invalid')


def test_api_nem_namespaces_invalid_sort(client): # pylint: disable=redefined-outer-name
_assert_get_api_nem_namespaces_fail(client, sort=-1)
_assert_get_api_nem_namespaces_fail(client, sort='invalid')


# endregion

0 comments on commit b9fd6dc

Please sign in to comment.