Skip to content

Commit

Permalink
Update test libraries and adjusts tests to new library requirements
Browse files Browse the repository at this point in the history
  • Loading branch information
Borja Aparicio authored and icot committed Nov 7, 2019
1 parent 49f669e commit 5a8accd
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 17 deletions.
2 changes: 1 addition & 1 deletion conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from betamax_serializers import pretty_json
from unittest import mock

log = init_logger()(__name__)
log = init_logger()

betamax.Betamax.register_serializer(pretty_json.PrettyJSONSerializer)

Expand Down
6 changes: 3 additions & 3 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
pytest==3.3.2
pytest-cov == 2.3.1
pytest==5.2.2
pytest-cov == 2.8.1
pytest-logging==2015.11.4
hypothesis==3.17.0
hypothesis==4.43.5
hypothesis-pytest==0.19.0
Flask-Testing==0.6.2
recommonmark==0.4.0
Expand Down
2 changes: 1 addition & 1 deletion storage_api/apis/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

log = init_logger()

__version__ = '3.3.4'
__version__ = '3.3.5'
__major_version__ = __version__.split(".")[0]
INTROSPECTION_MOUNTPOINT = "/conf"
SAPI_MOUNTPOINT = "/v{}".format(__major_version__)
Expand Down
2 changes: 1 addition & 1 deletion storage_api/extensions/storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
import flask
import netapp.api

#log = init_logger()(__name__)
log = init_logger()

SCHEMAS = [
('volume', {
'name': {'type': 'string', 'minlength': 1,
Expand Down
31 changes: 20 additions & 11 deletions tests/test_apis.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
from functools import partial

import pytest
import hypothesis
from hypothesis import given
from hypothesis import settings
from hypothesis.strategies import (characters, text, lists,
composite, integers,
booleans, sampled_from)
Expand All @@ -19,7 +21,12 @@
_DEFAULT_HEADERS = {'Content-Type': 'application/json',
'Accept': 'application/json'}

log = init_logger()(__name__)
log = init_logger()

# https://hypothesis.readthedocs.io/en/latest/healthchecks.html
# https://hypothesis.readthedocs.io/en/latest/settings.html#default-settings
settings.register_profile("health_suppress_slow", suppress_health_check=(hypothesis.HealthCheck.too_slow,))
settings.load_profile("health_suppress_slow")

ROOT_URL = SAPI_MOUNTPOINT

Expand Down Expand Up @@ -55,9 +62,7 @@ def sane_first_character(s):
["authorised", "not_authorised"])


params_volume_names = compose_decorators(given(volume_name=name_strings()))
params_vol_ns_auth = compose_decorators(params_volume_names,
params_namespaces,
params_vol_ns_auth = compose_decorators(params_namespaces,
params_auth_status,
params_vol_presence)
params_ns_auth = compose_decorators(params_namespaces,
Expand Down Expand Up @@ -175,6 +180,7 @@ def test_post_to_existing_volume_errors(client, namespace):
assert len(_get(client, '{}/volumes'.format(namespace))[1]) == 1


@given(volume_name=name_strings())
@params_vol_ns_auth
def test_post_new_volume(client, namespace, auth, vol_exists, volume_name):
resource, volume_exists, authorised = init_vols_from_params(client,
Expand Down Expand Up @@ -203,7 +209,7 @@ def test_post_new_volume(client, namespace, auth, vol_exists, volume_name):
else:
assert post_code == 400


@given(volume_name=name_strings())
@params_vol_ns_auth
def test_get_volume(client, auth, vol_exists, volume_name, namespace):
volume, volume_exists, _authorised = init_vols_from_params(client,
Expand All @@ -221,6 +227,7 @@ def test_get_volume(client, auth, vol_exists, volume_name, namespace):
assert get_code == 200


@given(volume_name=name_strings())
@params_vol_ns_auth
def test_delete_volume(client, auth, vol_exists, volume_name, namespace):
resource, volume_exists, authorised = init_vols_from_params(client,
Expand Down Expand Up @@ -362,7 +369,7 @@ def test_clone_from_snapshot_source_does_not_exist(client, namespace):
assert 'No such volume' in post_result['message']


@given(patch_args=patch_arguments())
@given(volume_name=name_strings(), patch_args=patch_arguments())
@params_vol_ns_auth
def test_patch_volume(client, namespace, vol_exists, auth,
volume_name, patch_args):
Expand Down Expand Up @@ -390,7 +397,7 @@ def test_patch_volume(client, namespace, vol_exists, auth,
assert patch_code == 400


@params_volume_names
@given(volume_name=name_strings())
@params_namespaces
def test_delete_snapshot_nonexistent_snapshot_and_volume(client,
namespace,
Expand All @@ -412,7 +419,7 @@ def test_delete_snapshot_nonexistent_snapshot_and_volume(client,
assert delete_code == 404


@params_volume_names
@given(volume_name=name_strings())
@params_namespaces
@params_auth_status
def test_delete_snapshot(client, namespace, auth, volume_name):
Expand Down Expand Up @@ -443,7 +450,7 @@ def test_delete_snapshot(client, namespace, auth, volume_name):
assert get_after == 200


@params_volume_names
@given(volume_name=name_strings())
@params_namespaces
def test_get_empty_locks(client, namespace, volume_name):
volume = '{}/volumes/{}'.format(namespace, volume_name, namespace)
Expand All @@ -455,6 +462,7 @@ def test_get_empty_locks(client, namespace, volume_name):
assert get_result == []


@given(volume_name=name_strings())
@params_vol_ns_auth
def test_lock_volume(client, namespace, auth, vol_exists, volume_name):
volume, volume_exists, authorised = init_vols_from_params(client,
Expand Down Expand Up @@ -482,6 +490,7 @@ def test_lock_volume(client, namespace, auth, vol_exists, volume_name):
assert put_code == 404


@given(volume_name=name_strings())
@params_vol_ns_auth
def test_force_lock_on_volume(client, namespace,
auth, vol_exists, volume_name):
Expand Down Expand Up @@ -516,7 +525,7 @@ def test_force_lock_on_volume(client, namespace,
assert len(get_result) == 0


@params_volume_names
@given(volume_name=name_strings())
@params_namespaces
def test_lock_locked_volume(client, namespace, volume_name):
host1 = "dbhost1.cern.ch"
Expand All @@ -540,7 +549,7 @@ def test_lock_locked_volume(client, namespace, volume_name):
assert put_code == 201


@params_volume_names
@given(volume_name=name_strings())
@params_namespaces
def test_lock_volume_idempotent(client, namespace, volume_name):
host = "dbhost1.cern.ch"
Expand Down

0 comments on commit 5a8accd

Please sign in to comment.