Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

resolved #44, resolved #43 update to s3p-sdk 0.2.8 and add tests #45

Merged
merged 2 commits into from
Dec 14, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
feat(tests): add middleware module order validation test (#43)
	•	Created a new test case to verify the correct order of middleware modules
	•	Implemented checks for module types and their ‘order’ attribute values
	•	Ensures proper configuration of the MiddlewareConfig in the plugin setup

Solved: #43
CuberHuber committed Dec 14, 2024
commit 513577724e40302444770cb7995dec9fb813136a
29 changes: 24 additions & 5 deletions tests/config/test_config.py
Original file line number Diff line number Diff line change
@@ -8,8 +8,9 @@

from tests.config.fixtures import fix_plugin_config, project_config
from s3p_sdk.plugin.config import (
PluginConfig, CoreConfig, TaskConfig, MiddlewareConfig, PayloadConfig, RestrictionsConfig,
PluginConfig, CoreConfig, TaskConfig, MiddlewareConfig, PayloadConfig, RestrictionsConfig
)
import s3p_sdk.module as s3p_module


class PluginStructure:
@@ -46,8 +47,10 @@ def test_config_plugin_structure(self, fix_plugin_config):
_cplugin = fix_plugin_config.__dict__.get(PluginStructure.PLUGIN)

assert isinstance(_cplugin.__dict__.get('reference'), str)
assert isinstance(_cplugin.__dict__.get('type'), str) and str(_cplugin.__dict__.get('type')) in (SOURCE, ML, PIPELINE)
assert isinstance(_cplugin.__dict__.get('files'), list) and all([isinstance(it, str) for it in _cplugin.__dict__.get('files')])
assert isinstance(_cplugin.__dict__.get('type'), str) and str(_cplugin.__dict__.get('type')) in (
SOURCE, ML, PIPELINE)
assert isinstance(_cplugin.__dict__.get('files'), list) and all(
[isinstance(it, str) for it in _cplugin.__dict__.get('files')])
assert isinstance(_cplugin.__dict__.get('is_localstorage'), bool)
assert isinstance(_cplugin.__dict__.get('restrictions'), RestrictionsConfig)

@@ -77,8 +80,10 @@ def test_config_payload_entry_structure(self, fix_plugin_config, project_config)
_pentry = fix_plugin_config.__dict__.get(PluginStructure.PAYLOAD).__dict__.get('entry')

assert isinstance(_pentry.__dict__.get('method'), str)
assert _pentry.__dict__.get('method') == 'content', f"Метод запуска плагина {_pentry.__dict__.get('method')} не соответствуе значению по умолчанию `content`"
assert isinstance(_pentry.__dict__.get('params'), list) and all([isinstance(it, AbcParamConfig) for it in _pentry.__dict__.get('params')])
assert _pentry.__dict__.get(
'method') == 'content', f"Метод запуска плагина {_pentry.__dict__.get('method')} не соответствуе значению по умолчанию `content`"
assert isinstance(_pentry.__dict__.get('params'), list) and all(
[isinstance(it, AbcParamConfig) for it in _pentry.__dict__.get('params')])

def test_config_plugin_files(self, fix_plugin_config, project_config):
"""Проверка наличия файлов плагина"""
@@ -112,3 +117,17 @@ def test_compare_entry_file_and_plugin_files(self, fix_plugin_config):
_cplugin = fix_plugin_config.__dict__.get(PluginStructure.PLUGIN)

assert _cpayload.__dict__.get('file') in _cplugin.__dict__.get('files')


@pytest.mark.pre_set
class TestConfigMiddleware:

def test_modules_order(self, fix_plugin_config):
for i, module in enumerate(fix_plugin_config.middleware.modules):
assert module.order == i + 1, f"Module {module.name} should have order {i + 1}"

def test_modules_key_params(self, fix_plugin_config):
for i, module in enumerate(fix_plugin_config.middleware.modules):
assert isinstance(module.order, int)
assert isinstance(module.name, str)
assert isinstance(module.is_critical, bool)