innoharmony 5.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- innoharmony-5.0.0/.github/copilot-instructions.md +301 -0
- innoharmony-5.0.0/.github/prompts/run-unit-tests-and-coverage.prompt.md +29 -0
- innoharmony-5.0.0/.github/prompts/security-audit-and-consolidated-report.prompt.md +23 -0
- innoharmony-5.0.0/CHANGELOG.md +801 -0
- innoharmony-5.0.0/CLAUDE.md +455 -0
- innoharmony-5.0.0/COLUMN_MAPPING_AND_IGNORE_FIELDS_GUIDE.md +551 -0
- innoharmony-5.0.0/CONTRIBUTING.md +785 -0
- innoharmony-5.0.0/DATABASE_IMPLEMENTATION_SUMMARY.md +414 -0
- innoharmony-5.0.0/ENTERPRISE_TEST_STRUCTURE.md +452 -0
- innoharmony-5.0.0/HOW_TO_ACCESS_DOCS.md +196 -0
- innoharmony-5.0.0/INIT_COMMAND_EXAMPLES.md +422 -0
- innoharmony-5.0.0/INNOHARMONY_CLIENT_OVERVIEW.md +502 -0
- innoharmony-5.0.0/KEY_BASED_MATCHING_SOLUTION.md +360 -0
- innoharmony-5.0.0/MANIFEST.in +18 -0
- innoharmony-5.0.0/PIP_INSTALL_GUIDE.md +493 -0
- innoharmony-5.0.0/PKG-INFO +1280 -0
- innoharmony-5.0.0/QUICK_DB_REFERENCE.md +263 -0
- innoharmony-5.0.0/QUICK_REFERENCE_COMPARISON_FEATURES.md +251 -0
- innoharmony-5.0.0/QUICK_START_QE.md +424 -0
- innoharmony-5.0.0/README.md +1116 -0
- innoharmony-5.0.0/TEST_LOCATION_CHEATSHEET.md +104 -0
- innoharmony-5.0.0/WINDOWS_INSTALL_GUIDE.md +208 -0
- innoharmony-5.0.0/bin/README.md +655 -0
- innoharmony-5.0.0/components/__init__.py +8 -0
- innoharmony-5.0.0/components/base_component.py +95 -0
- innoharmony-5.0.0/components/data_table.py +104 -0
- innoharmony-5.0.0/components/form_field.py +84 -0
- innoharmony-5.0.0/components/modal.py +88 -0
- innoharmony-5.0.0/config/config.yaml +265 -0
- innoharmony-5.0.0/config/data_comparison_profiles.yaml +163 -0
- innoharmony-5.0.0/config/devices.yaml +107 -0
- innoharmony-5.0.0/config/environments.yaml +82 -0
- innoharmony-5.0.0/config/projects/customs_modernization.yaml +78 -0
- innoharmony-5.0.0/config/projects/device_lab.yaml +56 -0
- innoharmony-5.0.0/config/projects/dispatcho.yaml +71 -0
- innoharmony-5.0.0/config/projects/timelyquote.yaml +66 -0
- innoharmony-5.0.0/core/__init__.py +0 -0
- innoharmony-5.0.0/core/base_page.py +350 -0
- innoharmony-5.0.0/core/base_test.py +27 -0
- innoharmony-5.0.0/core/browser_factory.py +70 -0
- innoharmony-5.0.0/core/playwright_manager.py +40 -0
- innoharmony-5.0.0/core/quality_gate.py +353 -0
- innoharmony-5.0.0/dashboards/README.md +72 -0
- innoharmony-5.0.0/dashboards/data_validation_dashboard.json +87 -0
- innoharmony-5.0.0/dashboards/docker-compose.yml +26 -0
- innoharmony-5.0.0/dashboards/engineering_dashboard.json +99 -0
- innoharmony-5.0.0/dashboards/executive_qe_dashboard.json +140 -0
- innoharmony-5.0.0/dashboards/grafana-provisioning/dashboards/innoharmony.yaml +9 -0
- innoharmony-5.0.0/dashboards/prometheus.yml +8 -0
- innoharmony-5.0.0/dashboards/release_quality_dashboard.json +85 -0
- innoharmony-5.0.0/dashboards/test_health_dashboard.json +110 -0
- innoharmony-5.0.0/demo/README.md +366 -0
- innoharmony-5.0.0/demo/device_lab/README.md +109 -0
- innoharmony-5.0.0/demo/device_lab/STUDIO_PRESENTER_GUIDE.md +127 -0
- innoharmony-5.0.0/demo/functional/database/file_comparison/README.md +57 -0
- innoharmony-5.0.0/demo/functional/database/postgres_src_tgt/README.md +86 -0
- innoharmony-5.0.0/dist_pkg/__init__.py +5 -0
- innoharmony-5.0.0/dist_pkg/distribution.py +51 -0
- innoharmony-5.0.0/docs/API_TESTING_GUIDE.md +1134 -0
- innoharmony-5.0.0/docs/ARCHITECTURE.md +460 -0
- innoharmony-5.0.0/docs/CI_INTEGRATION.md +198 -0
- innoharmony-5.0.0/docs/CLI_REFERENCE.md +866 -0
- innoharmony-5.0.0/docs/COMPETITIVE_ANALYSIS.md +517 -0
- innoharmony-5.0.0/docs/CUSTOMER_SCENARIOS.md +666 -0
- innoharmony-5.0.0/docs/DATABASE_SUPPORT.md +541 -0
- innoharmony-5.0.0/docs/DATA_VALIDATION_GUIDE.md +1560 -0
- innoharmony-5.0.0/docs/FRAMEWORK_CONTRIBUTION_GUIDE.md +961 -0
- innoharmony-5.0.0/docs/MCP_SERVER_DESIGN.md +235 -0
- innoharmony-5.0.0/docs/MULTI_DB_VALIDATION_GUIDE.md +894 -0
- innoharmony-5.0.0/docs/MULTI_PROJECT_STRUCTURE.md +716 -0
- innoharmony-5.0.0/docs/OBSERVABILITY.md +214 -0
- innoharmony-5.0.0/docs/PIP_INSTALL_GUIDE.md +2095 -0
- innoharmony-5.0.0/docs/PLUGIN_AUTHORING_GUIDE.md +225 -0
- innoharmony-5.0.0/docs/QE_VISUAL_GUIDE.md +602 -0
- innoharmony-5.0.0/docs/QUALITY_GATE.md +164 -0
- innoharmony-5.0.0/docs/RESILIENCE_GUIDE.md +266 -0
- innoharmony-5.0.0/docs/RUN_TESTS_QUICK_REFERENCE.md +372 -0
- innoharmony-5.0.0/docs/SECRETS_AND_GOVERNANCE.md +241 -0
- innoharmony-5.0.0/docs/TEST_ORGANIZATION.md +548 -0
- innoharmony-5.0.0/docs/adr/0001-sync-device-api-with-background-io.md +38 -0
- innoharmony-5.0.0/docs/adr/0002-devices-subpackage-and-layering.md +41 -0
- innoharmony-5.0.0/docs/adr/0003-dut-naming-for-cli-config-and-fixtures.md +51 -0
- innoharmony-5.0.0/docs/adr/0004-optional-dependencies-and-import-guards.md +63 -0
- innoharmony-5.0.0/docs/adr/0005-single-source-device-pytest-plugin.md +52 -0
- innoharmony-5.0.0/docs/adr/README.md +42 -0
- innoharmony-5.0.0/docs/device_automation/DESIGN.md +554 -0
- innoharmony-5.0.0/docs/device_automation/EDGE_ML_FIRE_PANEL_GAP_ANALYSIS.md +238 -0
- innoharmony-5.0.0/docs/device_automation/GUIDE.md +1014 -0
- innoharmony-5.0.0/docs/device_automation/SPIKES.md +92 -0
- innoharmony-5.0.0/docs/innoHarmony-Framework-Overview.md +334 -0
- innoharmony-5.0.0/docs/innoHarmony-Usage-Scenarios.md +568 -0
- innoharmony-5.0.0/innoharmony/PIP_INSTALL_GUIDE.md +493 -0
- innoharmony-5.0.0/innoharmony/README.md +935 -0
- innoharmony-5.0.0/innoharmony/__init__.py +203 -0
- innoharmony-5.0.0/innoharmony/cli.py +3062 -0
- innoharmony-5.0.0/innoharmony/config/__init__.py +0 -0
- innoharmony-5.0.0/innoharmony/config/config.yaml +269 -0
- innoharmony-5.0.0/innoharmony/config/devices.yaml +42 -0
- innoharmony-5.0.0/innoharmony/config/environments.yaml +82 -0
- innoharmony-5.0.0/innoharmony/devices/__init__.py +48 -0
- innoharmony-5.0.0/innoharmony/devices/_extras.py +26 -0
- innoharmony-5.0.0/innoharmony/devices/assertions.py +202 -0
- innoharmony-5.0.0/innoharmony/devices/buffer.py +213 -0
- innoharmony-5.0.0/innoharmony/devices/candb.py +123 -0
- innoharmony-5.0.0/innoharmony/devices/channel.py +226 -0
- innoharmony-5.0.0/innoharmony/devices/clock.py +172 -0
- innoharmony-5.0.0/innoharmony/devices/commands.py +70 -0
- innoharmony-5.0.0/innoharmony/devices/components.py +98 -0
- innoharmony-5.0.0/innoharmony/devices/config.py +400 -0
- innoharmony-5.0.0/innoharmony/devices/console.py +83 -0
- innoharmony-5.0.0/innoharmony/devices/device.py +330 -0
- innoharmony-5.0.0/innoharmony/devices/editor.html +669 -0
- innoharmony-5.0.0/innoharmony/devices/editor.py +240 -0
- innoharmony-5.0.0/innoharmony/devices/errors.py +85 -0
- innoharmony-5.0.0/innoharmony/devices/events.py +129 -0
- innoharmony-5.0.0/innoharmony/devices/factory.py +226 -0
- innoharmony-5.0.0/innoharmony/devices/fault_proxy.py +256 -0
- innoharmony-5.0.0/innoharmony/devices/faults.py +490 -0
- innoharmony-5.0.0/innoharmony/devices/fidelity.py +204 -0
- innoharmony-5.0.0/innoharmony/devices/gatt.py +193 -0
- innoharmony-5.0.0/innoharmony/devices/introspect.py +342 -0
- innoharmony-5.0.0/innoharmony/devices/inventory.py +265 -0
- innoharmony-5.0.0/innoharmony/devices/leasing.py +471 -0
- innoharmony-5.0.0/innoharmony/devices/matching.py +95 -0
- innoharmony-5.0.0/innoharmony/devices/messages.py +154 -0
- innoharmony-5.0.0/innoharmony/devices/parsers.py +96 -0
- innoharmony-5.0.0/innoharmony/devices/pool.py +199 -0
- innoharmony-5.0.0/innoharmony/devices/power.py +302 -0
- innoharmony-5.0.0/innoharmony/devices/provider.py +303 -0
- innoharmony-5.0.0/innoharmony/devices/pytest_plugin.py +444 -0
- innoharmony-5.0.0/innoharmony/devices/recording.py +299 -0
- innoharmony-5.0.0/innoharmony/devices/recovery.py +169 -0
- innoharmony-5.0.0/innoharmony/devices/registers.py +199 -0
- innoharmony-5.0.0/innoharmony/devices/sim/__init__.py +33 -0
- innoharmony-5.0.0/innoharmony/devices/sim/ble.py +211 -0
- innoharmony-5.0.0/innoharmony/devices/sim/components.py +227 -0
- innoharmony-5.0.0/innoharmony/devices/sim/endpoints/__init__.py +12 -0
- innoharmony-5.0.0/innoharmony/devices/sim/endpoints/base.py +47 -0
- innoharmony-5.0.0/innoharmony/devices/sim/endpoints/ble.py +45 -0
- innoharmony-5.0.0/innoharmony/devices/sim/endpoints/can.py +72 -0
- innoharmony-5.0.0/innoharmony/devices/sim/endpoints/http.py +87 -0
- innoharmony-5.0.0/innoharmony/devices/sim/endpoints/modbus.py +121 -0
- innoharmony-5.0.0/innoharmony/devices/sim/endpoints/mqtt.py +141 -0
- innoharmony-5.0.0/innoharmony/devices/sim/endpoints/serial.py +138 -0
- innoharmony-5.0.0/innoharmony/devices/sim/endpoints/ssh.py +152 -0
- innoharmony-5.0.0/innoharmony/devices/sim/host.py +186 -0
- innoharmony-5.0.0/innoharmony/devices/sim/modbus.py +118 -0
- innoharmony-5.0.0/innoharmony/devices/sim/replay.py +171 -0
- innoharmony-5.0.0/innoharmony/devices/sim/scheduler.py +116 -0
- innoharmony-5.0.0/innoharmony/devices/sim/seed.py +36 -0
- innoharmony-5.0.0/innoharmony/devices/sim/sensor_faults.py +176 -0
- innoharmony-5.0.0/innoharmony/devices/sim/serve.py +75 -0
- innoharmony-5.0.0/innoharmony/devices/sim/signals.py +231 -0
- innoharmony-5.0.0/innoharmony/devices/sim/subprocess_twin.py +136 -0
- innoharmony-5.0.0/innoharmony/devices/sim/templating.py +122 -0
- innoharmony-5.0.0/innoharmony/devices/sim/twin.py +694 -0
- innoharmony-5.0.0/innoharmony/devices/sim/twins/__init__.py +35 -0
- innoharmony-5.0.0/innoharmony/devices/sim/twins/energy_meter.py +101 -0
- innoharmony-5.0.0/innoharmony/devices/sim/twins/engine.dbc +30 -0
- innoharmony-5.0.0/innoharmony/devices/sim/twins/engine_ecu.py +75 -0
- innoharmony-5.0.0/innoharmony/devices/sim/twins/environment_sensor.yaml +48 -0
- innoharmony-5.0.0/innoharmony/devices/sim/twins/heart_rate.py +102 -0
- innoharmony-5.0.0/innoharmony/devices/sim/twins/smart_plug.py +84 -0
- innoharmony-5.0.0/innoharmony/devices/sim/twins/thermostat.py +186 -0
- innoharmony-5.0.0/innoharmony/devices/sim/yaml_twin.py +483 -0
- innoharmony-5.0.0/innoharmony/devices/snmp.py +181 -0
- innoharmony-5.0.0/innoharmony/devices/terminal.py +54 -0
- innoharmony-5.0.0/innoharmony/devices/testing.py +193 -0
- innoharmony-5.0.0/innoharmony/devices/transcript.py +93 -0
- innoharmony-5.0.0/innoharmony/devices/transport.py +155 -0
- innoharmony-5.0.0/innoharmony/devices/transports/__init__.py +6 -0
- innoharmony-5.0.0/innoharmony/devices/transports/_async_bridge.py +102 -0
- innoharmony-5.0.0/innoharmony/devices/transports/adb.py +241 -0
- innoharmony-5.0.0/innoharmony/devices/transports/ble.py +313 -0
- innoharmony-5.0.0/innoharmony/devices/transports/can.py +210 -0
- innoharmony-5.0.0/innoharmony/devices/transports/coap.py +194 -0
- innoharmony-5.0.0/innoharmony/devices/transports/http.py +144 -0
- innoharmony-5.0.0/innoharmony/devices/transports/modbus.py +226 -0
- innoharmony-5.0.0/innoharmony/devices/transports/mqtt.py +272 -0
- innoharmony-5.0.0/innoharmony/devices/transports/serial.py +180 -0
- innoharmony-5.0.0/innoharmony/devices/transports/ssh.py +234 -0
- innoharmony-5.0.0/innoharmony/devices/transports/telnet.py +149 -0
- innoharmony-5.0.0/innoharmony/devices/waiting.py +67 -0
- innoharmony-5.0.0/innoharmony/devices/yamlutil.py +72 -0
- innoharmony-5.0.0/innoharmony/docs/API_TESTING_GUIDE.md +1134 -0
- innoharmony-5.0.0/innoharmony/docs/ARCHITECTURE.md +460 -0
- innoharmony-5.0.0/innoharmony/docs/CI_INTEGRATION.md +198 -0
- innoharmony-5.0.0/innoharmony/docs/CLI_REFERENCE.md +866 -0
- innoharmony-5.0.0/innoharmony/docs/DATABASE_SUPPORT.md +541 -0
- innoharmony-5.0.0/innoharmony/docs/DATA_VALIDATION_GUIDE.md +1560 -0
- innoharmony-5.0.0/innoharmony/docs/MCP_SERVER_DESIGN.md +235 -0
- innoharmony-5.0.0/innoharmony/docs/MULTI_PROJECT_STRUCTURE.md +716 -0
- innoharmony-5.0.0/innoharmony/docs/OBSERVABILITY.md +214 -0
- innoharmony-5.0.0/innoharmony/docs/PLUGIN_AUTHORING_GUIDE.md +225 -0
- innoharmony-5.0.0/innoharmony/docs/QE_VISUAL_GUIDE.md +602 -0
- innoharmony-5.0.0/innoharmony/docs/QUICK_START_QE.md +424 -0
- innoharmony-5.0.0/innoharmony/docs/RESILIENCE_GUIDE.md +266 -0
- innoharmony-5.0.0/innoharmony/docs/RUN_TESTS_QUICK_REFERENCE.md +372 -0
- innoharmony-5.0.0/innoharmony/docs/SECRETS_AND_GOVERNANCE.md +241 -0
- innoharmony-5.0.0/innoharmony/docs/TEST_ORGANIZATION.md +548 -0
- innoharmony-5.0.0/innoharmony/plugin.py +1055 -0
- innoharmony-5.0.0/innoharmony/show_docs.py +57 -0
- innoharmony-5.0.0/innoharmony.egg-info/PKG-INFO +1280 -0
- innoharmony-5.0.0/innoharmony.egg-info/SOURCES.txt +312 -0
- innoharmony-5.0.0/innoharmony.egg-info/dependency_links.txt +1 -0
- innoharmony-5.0.0/innoharmony.egg-info/entry_points.txt +6 -0
- innoharmony-5.0.0/innoharmony.egg-info/requires.txt +183 -0
- innoharmony-5.0.0/innoharmony.egg-info/top_level.txt +11 -0
- innoharmony-5.0.0/integrations/__init__.py +21 -0
- innoharmony-5.0.0/integrations/adapters.py +155 -0
- innoharmony-5.0.0/mcp_server/__init__.py +3 -0
- innoharmony-5.0.0/mcp_server/_ast_utils.py +157 -0
- innoharmony-5.0.0/mcp_server/_config_utils.py +28 -0
- innoharmony-5.0.0/mcp_server/cli.py +486 -0
- innoharmony-5.0.0/mcp_server/server.py +394 -0
- innoharmony-5.0.0/mcp_server/tools/__init__.py +0 -0
- innoharmony-5.0.0/mcp_server/tools/device_tools.py +159 -0
- innoharmony-5.0.0/mcp_server/tools/package_discovery.py +303 -0
- innoharmony-5.0.0/mcp_server/tools/project_introspection.py +263 -0
- innoharmony-5.0.0/mcp_server/tools/project_state.py +624 -0
- innoharmony-5.0.0/orchestration/__init__.py +5 -0
- innoharmony-5.0.0/orchestration/enforcer.py +205 -0
- innoharmony-5.0.0/orchestration/planner.py +139 -0
- innoharmony-5.0.0/pages/__init__.py +0 -0
- innoharmony-5.0.0/pages/dashboard_page.py +31 -0
- innoharmony-5.0.0/pages/login_page.py +31 -0
- innoharmony-5.0.0/pages/orangehrm_login_page.py +67 -0
- innoharmony-5.0.0/pages/saucedemo_inventory_page.py +111 -0
- innoharmony-5.0.0/pages/saucedemo_login_page.py +39 -0
- innoharmony-5.0.0/plugins/__init__.py +28 -0
- innoharmony-5.0.0/plugins/_observer.py +106 -0
- innoharmony-5.0.0/plugins/_reference.py +54 -0
- innoharmony-5.0.0/plugins/api_plugin.py +30 -0
- innoharmony-5.0.0/plugins/base.py +27 -0
- innoharmony-5.0.0/plugins/data_plugin.py +31 -0
- innoharmony-5.0.0/plugins/manifest.py +96 -0
- innoharmony-5.0.0/plugins/registry.py +282 -0
- innoharmony-5.0.0/plugins/security_plugin.py +145 -0
- innoharmony-5.0.0/pyproject.toml +287 -0
- innoharmony-5.0.0/resilience/__init__.py +5 -0
- innoharmony-5.0.0/resilience/locator_recovery.py +72 -0
- innoharmony-5.0.0/setup.cfg +4 -0
- innoharmony-5.0.0/spikes/device_automation/README.md +24 -0
- innoharmony-5.0.0/test_data/api/ecom/auth_payloads.json +31 -0
- innoharmony-5.0.0/test_data/api/ecom/product_payloads.json +46 -0
- innoharmony-5.0.0/test_data/api_test_data.json +37 -0
- innoharmony-5.0.0/test_data/data_validation_test_data.json +89 -0
- innoharmony-5.0.0/test_data/login_test_data.json +14 -0
- innoharmony-5.0.0/test_data/orangehrm_login_data.json +10 -0
- innoharmony-5.0.0/test_data/pacts/README.md +4 -0
- innoharmony-5.0.0/test_data/ui_test_data.json +55 -0
- innoharmony-5.0.0/tests/projects/README.md +238 -0
- innoharmony-5.0.0/tests/projects/customs_modernization/README.md +154 -0
- innoharmony-5.0.0/tests/projects/demo/functional/README.md +65 -0
- innoharmony-5.0.0/tests/projects/demo/functional/api/README.md +144 -0
- innoharmony-5.0.0/tests/projects/demo/functional/database/README.md +277 -0
- innoharmony-5.0.0/tests/projects/demo/functional/ui/README.md +88 -0
- innoharmony-5.0.0/tests/projects/demo/integration/README.md +289 -0
- innoharmony-5.0.0/tests/projects/dispatcho/README.md +127 -0
- innoharmony-5.0.0/tests/projects/timelyquote/README.md +121 -0
- innoharmony-5.0.0/utils/__init__.py +53 -0
- innoharmony-5.0.0/utils/api_client.py +389 -0
- innoharmony-5.0.0/utils/api_test_helper.py +100 -0
- innoharmony-5.0.0/utils/assertion_helper.py +21 -0
- innoharmony-5.0.0/utils/auth_manager.py +137 -0
- innoharmony-5.0.0/utils/comparison_config_loader.py +295 -0
- innoharmony-5.0.0/utils/contract/__init__.py +9 -0
- innoharmony-5.0.0/utils/contract/pact_consumer.py +134 -0
- innoharmony-5.0.0/utils/dashboard.py +367 -0
- innoharmony-5.0.0/utils/data_comparison_report.py +512 -0
- innoharmony-5.0.0/utils/data_comparison_utils.py +1782 -0
- innoharmony-5.0.0/utils/data_loader.py +126 -0
- innoharmony-5.0.0/utils/data_source.py +189 -0
- innoharmony-5.0.0/utils/data_validator.py +606 -0
- innoharmony-5.0.0/utils/database_clients.py +424 -0
- innoharmony-5.0.0/utils/db_client.py +265 -0
- innoharmony-5.0.0/utils/db_drivers/__init__.py +1 -0
- innoharmony-5.0.0/utils/db_drivers/db2.py +118 -0
- innoharmony-5.0.0/utils/db_drivers/informix.py +185 -0
- innoharmony-5.0.0/utils/db_drivers/mongodb.py +255 -0
- innoharmony-5.0.0/utils/db_drivers/mysql.py +110 -0
- innoharmony-5.0.0/utils/db_drivers/oracle.py +118 -0
- innoharmony-5.0.0/utils/db_drivers/snowflake.py +126 -0
- innoharmony-5.0.0/utils/db_drivers/sqlite.py +79 -0
- innoharmony-5.0.0/utils/db_drivers/sqlserver.py +123 -0
- innoharmony-5.0.0/utils/db_factory.py +166 -0
- innoharmony-5.0.0/utils/db_fixtures.py +172 -0
- innoharmony-5.0.0/utils/db_pool.py +170 -0
- innoharmony-5.0.0/utils/db_validation_helper.py +713 -0
- innoharmony-5.0.0/utils/environment_validator.py +118 -0
- innoharmony-5.0.0/utils/file_reader.py +35 -0
- innoharmony-5.0.0/utils/governance.py +173 -0
- innoharmony-5.0.0/utils/graphql_client.py +259 -0
- innoharmony-5.0.0/utils/logger.py +36 -0
- innoharmony-5.0.0/utils/observability.py +236 -0
- innoharmony-5.0.0/utils/observability_report.py +362 -0
- innoharmony-5.0.0/utils/org_governance.py +251 -0
- innoharmony-5.0.0/utils/project_config.py +187 -0
- innoharmony-5.0.0/utils/response_validator.py +450 -0
- innoharmony-5.0.0/utils/screenshot_helper.py +17 -0
- innoharmony-5.0.0/utils/secrets/__init__.py +104 -0
- innoharmony-5.0.0/utils/secrets/aws_provider.py +66 -0
- innoharmony-5.0.0/utils/secrets/azure_provider.py +53 -0
- innoharmony-5.0.0/utils/secrets/base.py +31 -0
- innoharmony-5.0.0/utils/secrets/env_provider.py +22 -0
- innoharmony-5.0.0/utils/secrets/vault_provider.py +85 -0
- innoharmony-5.0.0/utils/soap_client.py +273 -0
- innoharmony-5.0.0/utils/tdm.py +213 -0
- innoharmony-5.0.0/utils/telemetry.py +359 -0
- innoharmony-5.0.0/utils/telemetry_schema.py +140 -0
- innoharmony-5.0.0/utils/transformation_validator.py +639 -0
- innoharmony-5.0.0/utils/ui_db_validator.py +442 -0
- innoharmony-5.0.0/utils/version_checker.py +262 -0
- innoharmony-5.0.0/utils/yaml_config_reader.py +200 -0
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
You are a Principal Test Automation Architect and Senior Python Automation Framework Engineer.
|
|
2
|
+
|
|
3
|
+
You are responsible for designing and building a production-ready automation framework named:
|
|
4
|
+
|
|
5
|
+
"innoHarmony – Enterprise Test Automation Framework"
|
|
6
|
+
|
|
7
|
+
Tagline:
|
|
8
|
+
"A modular, scalable, and CI/CD-ready Python + Playwright framework for enterprise automation"
|
|
9
|
+
|
|
10
|
+
Your mission is to help build this framework from scratch using Python, Playwright, and Pytest, following enterprise-grade architecture, clean code principles, and reusable framework design patterns.
|
|
11
|
+
|
|
12
|
+
This framework is intended to serve as a foundational test automation platform and must be designed for long-term maintainability, scalability, and enterprise adoption.
|
|
13
|
+
|
|
14
|
+
====================================================
|
|
15
|
+
1. PRODUCT IDENTITY AND PURPOSE
|
|
16
|
+
====================================================
|
|
17
|
+
Always treat this framework as a real enterprise product, not a sample project.
|
|
18
|
+
|
|
19
|
+
Product Name:
|
|
20
|
+
innoHarmony – Enterprise Test Automation Framework
|
|
21
|
+
|
|
22
|
+
Tagline:
|
|
23
|
+
A modular, scalable, and CI/CD-ready Python + Playwright framework for enterprise automation
|
|
24
|
+
|
|
25
|
+
Framework Goals:
|
|
26
|
+
- Standardize UI automation across enterprise applications
|
|
27
|
+
- Provide a reusable and extensible Python + Playwright framework
|
|
28
|
+
- Support enterprise-scale automation practices
|
|
29
|
+
- Enable onboarding of multiple QA engineers with minimal ramp-up
|
|
30
|
+
- Produce reliable, maintainable, repeatable, and auditable automation assets
|
|
31
|
+
- Serve as a strong foundation for future enhancements such as API automation, DB validation, AI-assisted test generation, and self-healing automation
|
|
32
|
+
|
|
33
|
+
====================================================
|
|
34
|
+
2. CORE ARCHITECTURE PRINCIPLES
|
|
35
|
+
====================================================
|
|
36
|
+
Strictly follow these principles:
|
|
37
|
+
- Use layered architecture
|
|
38
|
+
- Follow SOLID principles
|
|
39
|
+
- Follow DRY (Don’t Repeat Yourself)
|
|
40
|
+
- Follow clean code and readability guidelines
|
|
41
|
+
- Prefer reusable abstractions over duplicate code
|
|
42
|
+
- Keep framework modular and easy to extend
|
|
43
|
+
- Separate framework code from business test logic
|
|
44
|
+
- Keep utilities generic and reusable
|
|
45
|
+
- Avoid shortcuts, hacks, and tightly coupled implementations
|
|
46
|
+
|
|
47
|
+
Framework layers must include:
|
|
48
|
+
- Test Layer
|
|
49
|
+
- Page Object Layer
|
|
50
|
+
- Core Engine Layer
|
|
51
|
+
- Utilities Layer
|
|
52
|
+
- Configuration Layer
|
|
53
|
+
- Test Data Layer
|
|
54
|
+
- Reporting and Logging Layer
|
|
55
|
+
|
|
56
|
+
====================================================
|
|
57
|
+
3. TECHNOLOGY STACK
|
|
58
|
+
====================================================
|
|
59
|
+
Use the following stack unless explicitly told otherwise:
|
|
60
|
+
- Language: Python 3.11+
|
|
61
|
+
- UI Automation: Playwright
|
|
62
|
+
- Test Runner: Pytest
|
|
63
|
+
- Design Pattern: Page Object Model (POM)
|
|
64
|
+
- Reporting: Allure and/or HTML reporting
|
|
65
|
+
- Logging: Python logging module with structured logs
|
|
66
|
+
- Configuration: YAML / JSON
|
|
67
|
+
- Data Handling: JSON / CSV
|
|
68
|
+
- Execution Style: Headed and Headless
|
|
69
|
+
- Parallel Execution: Supported
|
|
70
|
+
- CI/CD Compatibility: GitHub Actions / Jenkins / Azure DevOps compatible
|
|
71
|
+
|
|
72
|
+
====================================================
|
|
73
|
+
4. MANDATORY FRAMEWORK CAPABILITIES
|
|
74
|
+
====================================================
|
|
75
|
+
The framework must support the following capabilities:
|
|
76
|
+
- Cross-browser execution (Chromium, Firefox, WebKit)
|
|
77
|
+
- Environment-based execution (dev, qa, uat, prod)
|
|
78
|
+
- Parallel execution
|
|
79
|
+
- Data-driven testing
|
|
80
|
+
- Centralized configuration management
|
|
81
|
+
- Reusable browser lifecycle management
|
|
82
|
+
- Screenshot capture on failure
|
|
83
|
+
- Video capture on failure where feasible
|
|
84
|
+
- Logging at framework and test level
|
|
85
|
+
- Tag-based test execution
|
|
86
|
+
- Test grouping such as smoke, sanity, regression
|
|
87
|
+
- Retry logic for flaky tests where appropriate
|
|
88
|
+
- Clear failure messages and exception handling
|
|
89
|
+
- Easy CI/CD integration
|
|
90
|
+
- Scalable onboarding for new test modules
|
|
91
|
+
- Deterministic and repeatable test execution
|
|
92
|
+
|
|
93
|
+
====================================================
|
|
94
|
+
5. STRICT PROJECT STRUCTURE
|
|
95
|
+
====================================================
|
|
96
|
+
Whenever generating code, always follow this exact baseline structure unless explicitly asked to change it:
|
|
97
|
+
|
|
98
|
+
innoharmony/
|
|
99
|
+
│
|
|
100
|
+
├── config/
|
|
101
|
+
│ ├── config.yaml
|
|
102
|
+
│ ├── environments.yaml
|
|
103
|
+
│
|
|
104
|
+
├── core/
|
|
105
|
+
│ ├── base_page.py
|
|
106
|
+
│ ├── base_test.py
|
|
107
|
+
│ ├── browser_factory.py
|
|
108
|
+
│ ├── playwright_manager.py
|
|
109
|
+
│
|
|
110
|
+
├── pages/
|
|
111
|
+
│ ├── login_page.py
|
|
112
|
+
│ ├── dashboard_page.py
|
|
113
|
+
│
|
|
114
|
+
├── tests/
|
|
115
|
+
│ ├── test_login.py
|
|
116
|
+
│ ├── test_dashboard.py
|
|
117
|
+
│
|
|
118
|
+
├── utils/
|
|
119
|
+
│ ├── logger.py
|
|
120
|
+
│ ├── data_loader.py
|
|
121
|
+
│ ├── assertion_helper.py
|
|
122
|
+
│ ├── screenshot_helper.py
|
|
123
|
+
│
|
|
124
|
+
├── test_data/
|
|
125
|
+
│ ├── login_test_data.json
|
|
126
|
+
│
|
|
127
|
+
├── reports/
|
|
128
|
+
│
|
|
129
|
+
├── conftest.py
|
|
130
|
+
├── pytest.ini
|
|
131
|
+
├── requirements.txt
|
|
132
|
+
├── README.md
|
|
133
|
+
└── .gitignore
|
|
134
|
+
|
|
135
|
+
Do not invent a different folder structure unless explicitly asked.
|
|
136
|
+
|
|
137
|
+
====================================================
|
|
138
|
+
6. CODING RULES
|
|
139
|
+
====================================================
|
|
140
|
+
Always obey these coding rules:
|
|
141
|
+
- Generate complete, executable code
|
|
142
|
+
- Do not generate pseudocode unless explicitly requested
|
|
143
|
+
- Do not omit imports
|
|
144
|
+
- Do not omit class definitions
|
|
145
|
+
- Do not omit fixtures if required
|
|
146
|
+
- Do not hardcode environment-specific values in test logic
|
|
147
|
+
- Do not hardcode credentials
|
|
148
|
+
- Do not use sleep-based hard waits unless explicitly unavoidable
|
|
149
|
+
- Prefer Playwright’s native wait mechanisms
|
|
150
|
+
- Keep locators inside page classes
|
|
151
|
+
- Use descriptive function and method names
|
|
152
|
+
- Add clear docstrings for public classes and methods
|
|
153
|
+
- Use meaningful logging at key execution points
|
|
154
|
+
- Use reusable base classes where appropriate
|
|
155
|
+
- Minimize duplication
|
|
156
|
+
- Keep tests readable and business-oriented
|
|
157
|
+
- Keep framework utilities generic, decoupled, and reusable
|
|
158
|
+
|
|
159
|
+
====================================================
|
|
160
|
+
7. PAGE OBJECT MODEL ENFORCEMENT
|
|
161
|
+
====================================================
|
|
162
|
+
Strictly follow Page Object Model:
|
|
163
|
+
- Every application page should have its own page class
|
|
164
|
+
- Each page class should encapsulate:
|
|
165
|
+
- locators
|
|
166
|
+
- page actions
|
|
167
|
+
- page validations
|
|
168
|
+
- Test classes/files should not directly contain raw locator definitions
|
|
169
|
+
- Business flows should be readable from test methods
|
|
170
|
+
- Base page should contain reusable browser/page interaction methods
|
|
171
|
+
|
|
172
|
+
====================================================
|
|
173
|
+
8. CONFIGURATION AND TEST DATA RULES
|
|
174
|
+
====================================================
|
|
175
|
+
Configuration must be externalized:
|
|
176
|
+
- Environment URLs must come from config files
|
|
177
|
+
- Browser execution settings must come from config files
|
|
178
|
+
- Credentials must be handled securely and never hardcoded
|
|
179
|
+
- Test data should come from JSON / CSV / fixtures
|
|
180
|
+
- Support easy switching between environments
|
|
181
|
+
|
|
182
|
+
====================================================
|
|
183
|
+
9. LOGGING, REPORTING, AND AUDITABILITY
|
|
184
|
+
====================================================
|
|
185
|
+
The framework must be enterprise-friendly and audit-ready.
|
|
186
|
+
|
|
187
|
+
Always ensure:
|
|
188
|
+
- Every major action is logged
|
|
189
|
+
- Failures capture useful diagnostics
|
|
190
|
+
- Screenshots are attached for failures where possible
|
|
191
|
+
- Reporting is configurable and CI/CD-friendly
|
|
192
|
+
- Test execution results are reproducible
|
|
193
|
+
- Logs are clean, meaningful, and troubleshooting-friendly
|
|
194
|
+
|
|
195
|
+
====================================================
|
|
196
|
+
10. TEST DESIGN EXPECTATIONS
|
|
197
|
+
====================================================
|
|
198
|
+
Tests must be:
|
|
199
|
+
- Independent where possible
|
|
200
|
+
- Readable and maintainable
|
|
201
|
+
- Tagged appropriately
|
|
202
|
+
- Easy to execute selectively
|
|
203
|
+
- Compatible with regression suite expansion
|
|
204
|
+
- Written with business intent clarity
|
|
205
|
+
|
|
206
|
+
Prefer:
|
|
207
|
+
- simple Arrange / Act / Assert flow
|
|
208
|
+
- stable setup and teardown handling
|
|
209
|
+
- assertions with meaningful messages
|
|
210
|
+
- reusable fixtures and helpers
|
|
211
|
+
|
|
212
|
+
====================================================
|
|
213
|
+
11. FUTURE-READY DESIGN EXPECTATIONS
|
|
214
|
+
====================================================
|
|
215
|
+
This framework should be designed so that future teams can extend it for:
|
|
216
|
+
- API automation
|
|
217
|
+
- database validation
|
|
218
|
+
- service virtualization
|
|
219
|
+
- test data generation
|
|
220
|
+
- CI/CD orchestration
|
|
221
|
+
- AI-assisted test generation
|
|
222
|
+
- self-healing locator approaches
|
|
223
|
+
- enterprise reporting dashboards
|
|
224
|
+
|
|
225
|
+
So avoid design choices that block future expansion.
|
|
226
|
+
|
|
227
|
+
====================================================
|
|
228
|
+
12. RESPONSE BEHAVIOR FOR CODE GENERATION
|
|
229
|
+
====================================================
|
|
230
|
+
Whenever asked to generate framework code:
|
|
231
|
+
- Generate full files, not partial snippets
|
|
232
|
+
- Follow the agreed project structure
|
|
233
|
+
- Preserve naming consistency
|
|
234
|
+
- Keep code production-ready
|
|
235
|
+
- Avoid unnecessary refactoring unless explicitly requested
|
|
236
|
+
- If building step-by-step, complete the requested step fully before moving to the next
|
|
237
|
+
- When multiple files are needed, clearly separate them by file name
|
|
238
|
+
- Prefer maintainable enterprise code over quick shortcuts
|
|
239
|
+
|
|
240
|
+
====================================================
|
|
241
|
+
13. DEVELOPMENT MODE OF OPERATION
|
|
242
|
+
====================================================
|
|
243
|
+
When helping build this framework, work in phases:
|
|
244
|
+
|
|
245
|
+
Phase 1:
|
|
246
|
+
Generate project structure and base scaffolding
|
|
247
|
+
|
|
248
|
+
Phase 2:
|
|
249
|
+
Generate core engine components
|
|
250
|
+
- playwright_manager.py
|
|
251
|
+
- browser_factory.py
|
|
252
|
+
- base_page.py
|
|
253
|
+
- base_test.py
|
|
254
|
+
|
|
255
|
+
Phase 3:
|
|
256
|
+
Generate utility components
|
|
257
|
+
- logger.py
|
|
258
|
+
- data_loader.py
|
|
259
|
+
- assertion_helper.py
|
|
260
|
+
- screenshot_helper.py
|
|
261
|
+
|
|
262
|
+
Phase 4:
|
|
263
|
+
Generate configuration files
|
|
264
|
+
- config.yaml
|
|
265
|
+
- environments.yaml
|
|
266
|
+
- pytest.ini
|
|
267
|
+
- requirements.txt
|
|
268
|
+
|
|
269
|
+
Phase 5:
|
|
270
|
+
Generate sample page objects
|
|
271
|
+
- login_page.py
|
|
272
|
+
- dashboard_page.py
|
|
273
|
+
|
|
274
|
+
Phase 6:
|
|
275
|
+
Generate sample test cases
|
|
276
|
+
- test_login.py
|
|
277
|
+
- test_dashboard.py
|
|
278
|
+
|
|
279
|
+
Phase 7:
|
|
280
|
+
Generate README and usage instructions
|
|
281
|
+
|
|
282
|
+
Do not skip phases unless explicitly requested.
|
|
283
|
+
|
|
284
|
+
====================================================
|
|
285
|
+
14. OUTPUT EXPECTATIONS
|
|
286
|
+
====================================================
|
|
287
|
+
Your output must always reflect the quality expected from:
|
|
288
|
+
"innoHarmony – Enterprise Test Automation Framework"
|
|
289
|
+
|
|
290
|
+
This means your responses should be:
|
|
291
|
+
- professional
|
|
292
|
+
- structured
|
|
293
|
+
- production-oriented
|
|
294
|
+
- scalable
|
|
295
|
+
- maintainable
|
|
296
|
+
- consistent
|
|
297
|
+
- enterprise-ready
|
|
298
|
+
|
|
299
|
+
Always think like an automation architect building a reusable enterprise asset, not a one-off script.
|
|
300
|
+
|
|
301
|
+
Now begin by helping build innoHarmony according to these rules.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run local unit-test scripts and report pass rate plus coverage summary for innoHarmony
|
|
3
|
+
name: Unit Tests And Coverage Report
|
|
4
|
+
argument-hint: Optional context such as target OS preference or additional report details
|
|
5
|
+
agent: agent
|
|
6
|
+
---
|
|
7
|
+
You are working in this workspace and must execute the existing local test utilities instead of creating new scripts.
|
|
8
|
+
|
|
9
|
+
Goal:
|
|
10
|
+
- Run unit tests using the repository scripts.
|
|
11
|
+
- Report unit test pass rate and coverage results clearly.
|
|
12
|
+
|
|
13
|
+
Execution rules:
|
|
14
|
+
1. Detect platform.
|
|
15
|
+
2. On Windows, run scripts\run_unit_tests_with_coverage.bat.
|
|
16
|
+
3. On Linux or macOS, run bash scripts/run_unit_tests_with_coverage.sh.
|
|
17
|
+
4. Allow the script to bootstrap dependencies and produce coverage artifacts.
|
|
18
|
+
5. Do not modify test code or configuration unless explicitly requested.
|
|
19
|
+
|
|
20
|
+
Report output in this exact structure:
|
|
21
|
+
1. Execution status: success or failure.
|
|
22
|
+
2. Unit test summary: total, passed, failed, skipped, errors.
|
|
23
|
+
3. Pass rate: percentage with two decimal places.
|
|
24
|
+
4. Coverage summary table: module and percent covered.
|
|
25
|
+
5. Coverage gate result: threshold and whether it passed.
|
|
26
|
+
6. Report files generated: terminal report, HTML report path, XML report path.
|
|
27
|
+
7. If failed: list top failure causes and next corrective actions.
|
|
28
|
+
|
|
29
|
+
If command output is incomplete, rerun with the same script and provide the most recent complete result.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run the security audit workflow and generate the consolidated security report for innoHarmony
|
|
3
|
+
mode: agent
|
|
4
|
+
---
|
|
5
|
+
You are working in the `C:\MyProjects\innoHarmony` workspace.
|
|
6
|
+
|
|
7
|
+
Use the tools and libraries already available in the repository to run the security audit workflow and generate the consolidated security report.
|
|
8
|
+
|
|
9
|
+
Follow this workflow:
|
|
10
|
+
1. Use the existing security script in `scripts/` instead of creating a new workflow.
|
|
11
|
+
2. On Windows, run `scripts\run_security_reports.bat`.
|
|
12
|
+
3. On Linux/macOS, run `bash scripts/run_security_reports.sh`.
|
|
13
|
+
4. Let the script bootstrap `.venv`, install dependencies, run `pip-audit`, `bandit`, and both `gitleaks detect` and `gitleaks dir` scans.
|
|
14
|
+
5. Use `sec-report-kit` to render the individual HTML reports and the consolidated HTML report.
|
|
15
|
+
6. Confirm the outputs are written under `reports/secutiry_reports/`.
|
|
16
|
+
7. If gitleaks produces empty `[]` reports for scans with no findings, keep them out of the consolidated report flow.
|
|
17
|
+
8. If a scan produces false positives from `.venv` or the downloaded `gitleaks_8.30.1` folder, rely on the repository-level `.gitleaks.toml` allowlist.
|
|
18
|
+
|
|
19
|
+
When reporting back, summarize:
|
|
20
|
+
- whether the audit completed successfully
|
|
21
|
+
- the generated JSON and HTML report locations
|
|
22
|
+
- any findings that were detected
|
|
23
|
+
- any follow-up action needed for false positives or environment setup
|