aplos-nca-saas-sdk 0.0.15__py3-none-any.whl → 0.0.16__py3-none-any.whl

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.
@@ -11,7 +11,7 @@ from aplos_nca_saas_sdk.integration_testing.configs.login_config import (
11
11
  LoginConfig,
12
12
  LoginConfigs,
13
13
  )
14
- from aplos_nca_saas_sdk.utilities.environment_services import EnvironmentServices
14
+
15
15
  from aplos_nca_saas_sdk.utilities.file_utility import FileUtility
16
16
 
17
17
 
@@ -16,19 +16,25 @@ from aplos_nca_saas_sdk.integration_testing.integration_test_configurations impo
16
16
 
17
17
 
18
18
  def main():
19
- """Run the tests"""
19
+ """This is an example on how you can run the unit tests"""
20
20
 
21
+ # Optionally use our convient Environment Services loader
22
+ # which can help during intial testings.
21
23
  evs: EnvironmentServices = EnvironmentServices()
24
+ # see if we have a local .env, .env.uat, etc configured to look up
22
25
  env_file = os.getenv("ENV_FILE")
23
26
  if env_file:
24
27
  # if we have an environment file defined, let's load it
25
28
  evs.load_environment(starting_path=__file__, file_name=env_file)
26
29
 
30
+ # this is where the work begins
27
31
  its: IntegrationTestSuite = IntegrationTestSuite()
28
32
  config: TestConfiguration = TestConfiguration()
29
33
 
30
- # normally we'd pull a test configuration file from Secrets Manager, Parameter Store, or some other secure location
31
- # here we're going to pull the sample file and then override some it's values.
34
+ # here were going to load a config file that is local, for security purpose
35
+ # you should store this in SecretsManager, Parameter Store, a secure S3 bucket etc.
36
+ # the configs typically contain sensitive information like usernames & passwords
37
+ # so be careful where you store it!
32
38
  config_file = os.path.join(
33
39
  Path(__file__).parent,
34
40
  "configs",
@@ -37,14 +43,16 @@ def main():
37
43
  # load it so we can see what it looks like
38
44
  config.load(file_path=config_file)
39
45
 
40
- # override the configuration
41
- # override_config(config)
42
-
46
+ # run the tests
43
47
  its.test(test_config=config)
44
48
 
45
49
 
46
50
  def override_config(config: TestConfiguration):
47
- """Override the configuration for the tests"""
51
+ """
52
+ Override the configuration for the tests.
53
+ This is some sample code how you can use a combination of a config file
54
+ and then override the username/password combos using environment vars.
55
+ """
48
56
  username = os.getenv("TEST_USERNAME")
49
57
  password = os.getenv("TEST_PASSWORD")
50
58
  host = os.getenv("TEST_HOST")
@@ -70,15 +70,15 @@ class IntegrationTestSuite:
70
70
  if self.fail_fast:
71
71
  # just break and let the failure routine handle it
72
72
  break
73
-
74
- test_result["end_time_utc"] = datetime.now(UTC)
75
- self.test_results.append(test_result)
76
-
77
- if test_result["success"]:
78
- logger.info(f"Test {test.name} succeeded")
79
- logger.debug(test_result)
80
- else:
81
- logger.error(test_result)
73
+ finally:
74
+ test_result["end_time_utc"] = datetime.now(UTC)
75
+ self.test_results.append(test_result)
76
+
77
+ if test_result["success"]:
78
+ logger.info(f"Test {test.name} succeeded")
79
+ logger.debug(test_result)
80
+ else:
81
+ logger.error(test_result)
82
82
  # find the failures
83
83
  failures = [test for test in self.test_results if len(test["errors"]) > 0]
84
84
  self.__print_results(start_time, failures)
@@ -5,14 +5,201 @@ However you can also use this as a learning tool or a base on how to use our API
5
5
 
6
6
  ## Requirements
7
7
  The integration tests will require the following:
8
-
9
- ### Environment Vars
10
- |Variable Name|Description|
11
- |--|--|
12
- |APLOS_host|The full host name. e.g. app.aplos-nca.com|
8
+ - A valid user Aplos NCA User Account
9
+ - A valid subscription
13
10
 
14
11
 
15
12
  ### Users
16
13
  You will need valid user accounts with the appropriate permissions for the endpoints they are executing.
17
14
 
18
- If you are testing permission bounderies then you should set up multiple users with different permissions.
15
+ If you are testing permission bounderies then you should set up multiple users with different permissions.
16
+
17
+
18
+ ### Subscriptions
19
+ Your subscription will control how may executions are allowed for user or tenancy. Make sure you have enough executions. If you need
20
+ additional executions, please reach-out to your support contact.
21
+
22
+ ## Running the test
23
+ See the `example_main.py` for updated examples, but in general you follow the code below to run tests. Also, see the `configs` section below
24
+ for guidance on defining what is tested.
25
+
26
+ ```python
27
+ """
28
+ Copyright 2024-2025 Aplos Analytics
29
+ All Rights Reserved. www.aplosanalytics.com LICENSED MATERIALS
30
+ Property of Aplos Analytics, Utah, USA
31
+ """
32
+
33
+ import os
34
+ from pathlib import Path
35
+ from aplos_nca_saas_sdk.utilities.environment_services import EnvironmentServices
36
+ from aplos_nca_saas_sdk.integration_testing.integration_test_suite import (
37
+ IntegrationTestSuite,
38
+ )
39
+ from aplos_nca_saas_sdk.integration_testing.integration_test_configurations import (
40
+ TestConfiguration,
41
+ )
42
+
43
+
44
+ def main():
45
+ """This is an example on how you can run the unit tests"""
46
+
47
+ # Optionally use our convient Environment Services loader
48
+ # which can help during intial testings.
49
+ evs: EnvironmentServices = EnvironmentServices()
50
+ # See if we have a local .env, .env.uat, etc configured to look up
51
+ # for local configuration settings
52
+ #
53
+ # Use local .env files when testing locally. As a best practice
54
+ # you should avoid adding these to source control or deployments.
55
+ env_file = os.getenv("ENV_FILE")
56
+ if env_file:
57
+ # if we have an environment file defined, let's load it
58
+ # this will prep our environment with local values.
59
+ evs.load_environment(starting_path=__file__, file_name=env_file)
60
+
61
+ # this is where the work begins
62
+ its: IntegrationTestSuite = IntegrationTestSuite()
63
+ config: TestConfiguration = TestConfiguration()
64
+
65
+ # here were going to load a config file that is local, for security purpose
66
+ # you should store this in SecretsManager, Parameter Store, a secure S3 bucket etc.
67
+ # the configs typically contain sensitive information like usernames & passwords
68
+ # so be careful where you store it!
69
+ config_file = os.path.join(
70
+ Path(__file__).parent,
71
+ "configs",
72
+ os.getenv("TEST_CONFIG_FILE") or "config_sample.json",
73
+ )
74
+ # load it so we can see what it looks like
75
+ config.load(file_path=config_file)
76
+
77
+ # run the tests
78
+ its.test(test_config=config)
79
+
80
+
81
+ ```
82
+
83
+ ### Configs
84
+ Tests are run based on configurations. The following is an example of supported configurations:
85
+
86
+ - Appliction Configuration Settings
87
+ - Logins & Access
88
+ - Executing an Analysis
89
+ - Running a Validation
90
+
91
+ ```json
92
+ {
93
+ "application_config_test": {
94
+ "purpose": "Tests the application configuration endpoints",
95
+ "hosts": [
96
+ {
97
+ "host": "api.example.com",
98
+ "expected_results": {
99
+ "status_code": 200
100
+ },
101
+ "enabled": true
102
+ },
103
+ {
104
+ "host": "XXXXXXXXXXXXXXXXXXXXX",
105
+ "expected_results": {
106
+ "status_code": 403
107
+ },
108
+ "enabled": false
109
+ }
110
+ ]
111
+ },
112
+ "login_test": {
113
+ "purpose": "Tests the login endpoints",
114
+ "logins": [
115
+ {
116
+ "username": "foo",
117
+ "password": "barr",
118
+ "host": "api.example.com",
119
+ "roles": []
120
+ },
121
+ {
122
+ "username": "XXXXXXXXXXXXXXXXXXXXX",
123
+ "password": "XXXXXXXXXXXXXXXXXXXXX",
124
+ "host": "XXXXXXXXXXXXXXXXXXXXX",
125
+ "roles": [
126
+ "XXXXXXXXXXXXXXXXXXXXX"
127
+ ],
128
+ "enabled": false,
129
+ "expected_results": {
130
+ "exception": "InvalidCredentialsException"
131
+ }
132
+ }
133
+ ]
134
+ },
135
+ "file_upload_test": {
136
+ "purpose": "Tests the file upload endpoints.",
137
+ "notes": "a file can be on the local drive or pulled from a public https source.",
138
+ "login": {
139
+ "purpose": "optional: if present this login is used, unless a specific login is defined for the test",
140
+ "username": "foo",
141
+ "password": "bar",
142
+ "host": "api.example.com"
143
+ },
144
+ "files": [
145
+ {
146
+ "file": "XXXXXXXXXXXXXXXXXXXXX"
147
+ },
148
+ {
149
+ "file": "XXXXXXXXXXXXXXXXXXXXX",
150
+ "login": {
151
+ "purpose": "optional: if present tests an upload for a specific user",
152
+ "username": "XXXXXXXXXXXXXXXXXXXXX",
153
+ "password": "XXXXXXXXXXXXXXXXXXXXX",
154
+ "host": "XXXXXXXXXXXXXXXXXXXXX"
155
+ }
156
+ }
157
+ ]
158
+ },
159
+ "analysis_execution_test": {
160
+ "purpose": "Tests the analysis execution endpoints.",
161
+ "login": {
162
+ "username": "XXXXXXXXXXXXXXXXXXXXX",
163
+ "password": "XXXXXXXXXXXXXXXXXXXXX",
164
+ "host": "XXXXXXXXXXXXXXXXXXXXX"
165
+ },
166
+ "output_dir": "XXXXXXXXXXXXXXXXXXXXX",
167
+ "analyses": [
168
+ {
169
+ "file": "XXXXXXXXXXXXXXXXXXXXX",
170
+ "meta": {},
171
+ "config": {},
172
+ "expected_results": {
173
+ "status_code": 200
174
+ },
175
+ "output_dir": "XXXXXXXXXXXXXXXXXXXXX"
176
+ },
177
+ {
178
+ "file": "XXXXXXXXXXXXXXXXXXXXX",
179
+ "meta": {},
180
+ "config": {},
181
+ "login": {
182
+ "username": "XXXXXXXXXXXXXXXXXXXXX",
183
+ "password": "XXXXXXXXXXXXXXXXXXXXX",
184
+ "host": "XXXXXXXXXXXXXXXXXXXXX"
185
+ },
186
+ "expected_results": {
187
+ "status_code": 200
188
+ }
189
+ }
190
+ ]
191
+ },
192
+ "validation_test": {
193
+ "purpose": "Tests the validation execution.",
194
+ "login": {
195
+ "username": "XXXXXXXXXXXXXXXXXXXXX",
196
+ "password": "XXXXXXXXXXXXXXXXXXXXX",
197
+ "host": "XXXXXXXXXXXXXXXXXXXXX"
198
+ },
199
+ "expected_results": {
200
+ "status_code": 200
201
+ }
202
+ }
203
+ }
204
+
205
+ ```
@@ -1,4 +1,4 @@
1
1
  # Aplos NCA SaaS SDK Version File
2
2
  # This is automatically generated during the build process.
3
3
  # DO NOT UPDATE IT DIRECTLY. IT WILL BE OVERWRITTEN.
4
- __version__ = '0.0.15'
4
+ __version__ = '0.0.16'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aplos_nca_saas_sdk
3
- Version: 0.0.15
3
+ Version: 0.0.16
4
4
  Summary: Aplos NCA SaaS SDK
5
5
  Project-URL: Homepage, https://aplosanalytics.com/
6
6
  Project-URL: Documentation, https://docs.aplosanalytics.com/
@@ -1,17 +1,17 @@
1
1
  aplos_nca_saas_sdk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  aplos_nca_saas_sdk/run_analysis_execution.py,sha256=cYzGdAHOriDI7UHNFwzeaR6sHhiwNysx3__eMze8hZc,4445
3
- aplos_nca_saas_sdk/version.py,sha256=hesI7p0tch7GBriF73dhzd0PzoVVy-mpJts0LSOgW-Q,172
3
+ aplos_nca_saas_sdk/version.py,sha256=qLmk1u7bUFK0wkguJfyocxrKzrkxB9N02lZrHkT4ViQ,172
4
+ aplos_nca_saas_sdk/integration_testing/example_main.py,sha256=4vQHarGLrzhxBgfvHUt9f8Ce94DAzP3VaWqdGCUJXZg,2497
4
5
  aplos_nca_saas_sdk/integration_testing/integration_test_base.py,sha256=ci3oOfz_McdDKGSrqOHF7F_vrvgTWo7HzxydNdPSHLs,2787
5
6
  aplos_nca_saas_sdk/integration_testing/integration_test_configurations.py,sha256=GRDHSy0ZiAJtZQvL7uPlYG2oYVo9nWlP7hNZbNnrz7U,1900
6
7
  aplos_nca_saas_sdk/integration_testing/integration_test_factory.py,sha256=HdcGQycsBNv-cLGXfL3yVpRjLaj-QkAv1ih0L8yVXA0,2203
7
8
  aplos_nca_saas_sdk/integration_testing/integration_test_response.py,sha256=Ocn2q_kdgEJB-4Ol-V3dh8MEkf6CJdrIiQVURUeM62o,819
8
- aplos_nca_saas_sdk/integration_testing/integration_test_suite.py,sha256=L1ZFp3tE9zUnaCyzfTfKTYkgR_ksrIOi5YK7qViwKes,4413
9
- aplos_nca_saas_sdk/integration_testing/main.py,sha256=rEi9uraktWC4lZbMFdRywU_ts90X-VT-VKfi3MFecgU,2036
10
- aplos_nca_saas_sdk/integration_testing/readme.md,sha256=USg_Z8C3hYgOGgmDsv7DNR2IxRV0Xg6NvOYrwTBqZRE,626
9
+ aplos_nca_saas_sdk/integration_testing/integration_test_suite.py,sha256=tgataONHn3Ob_QHT03npbuarOOE6Z3xeUiAXd4-z_mE,4461
10
+ aplos_nca_saas_sdk/integration_testing/readme.md,sha256=-4L-Tp1-oF9rk6-rOapcU5uLDATTOnQ-7nRoVEz6mv8,6762
11
11
  aplos_nca_saas_sdk/integration_testing/configs/_config_base.py,sha256=PyXCiEbvM5usN8sbtVSEL0g1iqGh9bdE31kPORMJBIs,480
12
12
  aplos_nca_saas_sdk/integration_testing/configs/app_settings_config.py,sha256=F2gylnuJ9CHvoLwpNEPWZiojVQZIDqC8pCCbcMFXZmU,2631
13
13
  aplos_nca_saas_sdk/integration_testing/configs/config_sample.json,sha256=zeflEvdtpknGjk42FXHGG3cBbvLcbSnj1_99o21JiDc,3566
14
- aplos_nca_saas_sdk/integration_testing/configs/file_upload_config.py,sha256=yJjwHuEAUZZ6iZEvYCCqPzk1t-yHFJBq-bCG91iN3ww,3115
14
+ aplos_nca_saas_sdk/integration_testing/configs/file_upload_config.py,sha256=NZsE7n9bkZOVEDFC8jDEO4XAIb5Vzsd62_CnSDLNDj8,3034
15
15
  aplos_nca_saas_sdk/integration_testing/configs/login_config.py,sha256=PYUXQZN_2rI16iSbeZf5zebVjOUqL0fWUv1ha3Gbszs,3609
16
16
  aplos_nca_saas_sdk/integration_testing/configs/nca_execution_config.py,sha256=SDHMG3pQlz-XhF7yBemb-OmGRlaLZnUgWbebNRaVkQM,5819
17
17
  aplos_nca_saas_sdk/integration_testing/configs/nca_validation_config.py,sha256=veqCTMsRTailuP-P5JX8JU7BkRMzC4-sxZM9tYG52ug,2595
@@ -27,7 +27,6 @@ aplos_nca_saas_sdk/integration_testing/tests/app_login_test.py,sha256=NLI4DUICsp
27
27
  aplos_nca_saas_sdk/integration_testing/tests/file_upload_test.py,sha256=v3-5vEVPVREQDBColJeAGg2grG3c8A4WTxZnE3_ki9c,3936
28
28
  aplos_nca_saas_sdk/integration_testing/tests/nca_analysis_test.py,sha256=RIxarfp_ggD4HgVb8xnMynIDZG2HZ0hmv6sZj1-T73c,3261
29
29
  aplos_nca_saas_sdk/integration_testing/tests/nca_analysis_validation_test.py,sha256=IlnkaO_KSrm0tch0gxM0rZP59m1PHzUow4kZm9CiBqY,2042
30
- aplos_nca_saas_sdk/integration_testing/tests/validation_test.py,sha256=68BRZbjPa7p_n5CQeEzSP5hwPAZ921NP8vbmCaCn2pQ,150
31
30
  aplos_nca_saas_sdk/nca_resources/_api_base.py,sha256=qxMSiHV4014L733ii4EJ2JUwQwKkuHi5Rm6cPEdS3cA,1278
32
31
  aplos_nca_saas_sdk/nca_resources/aws_cognito.py,sha256=lc6GCvoTBx_Dmezoxt80xksiuxXjSwkynj-1Sg0vzwY,6576
33
32
  aplos_nca_saas_sdk/nca_resources/aws_s3_presigned_payload.py,sha256=S9LvUEjzJqLYob-JmNXdIe0Uj__fVtcF4LDQB5538vk,2001
@@ -47,7 +46,7 @@ aplos_nca_saas_sdk/utilities/environment_services.py,sha256=eKlaz-3VAPHUe-MN0rc_
47
46
  aplos_nca_saas_sdk/utilities/environment_vars.py,sha256=aXheFXg6FVMaSYLe2LmoWRF5Ks9vwxDazO4XYb4vLjc,1132
48
47
  aplos_nca_saas_sdk/utilities/file_utility.py,sha256=EUvQ65aXN6OdILniuiDQ2rPRA9sFmvUoAehifEjRgUY,1025
49
48
  aplos_nca_saas_sdk/utilities/http_utility.py,sha256=DQ-ClLOmNoyPn5vhrSh4q-2wi4ViP_gplJD9asEKDM8,464
50
- aplos_nca_saas_sdk-0.0.15.dist-info/METADATA,sha256=uSV9ZRbV9igAM6CAdalxd6Tqufq2pYYi71Xu2KSVE4w,3792
51
- aplos_nca_saas_sdk-0.0.15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
52
- aplos_nca_saas_sdk-0.0.15.dist-info/licenses/LICENSE,sha256=JQMpBrnqu_m2tISmyh6_dTgb8-m3HNnA51fuOh2TzkE,1076
53
- aplos_nca_saas_sdk-0.0.15.dist-info/RECORD,,
49
+ aplos_nca_saas_sdk-0.0.16.dist-info/METADATA,sha256=-MSLEhLFa95ZPNMzEgC2RchbQ5KAHxaxQMh2636KnLY,3792
50
+ aplos_nca_saas_sdk-0.0.16.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
51
+ aplos_nca_saas_sdk-0.0.16.dist-info/licenses/LICENSE,sha256=JQMpBrnqu_m2tISmyh6_dTgb8-m3HNnA51fuOh2TzkE,1076
52
+ aplos_nca_saas_sdk-0.0.16.dist-info/RECORD,,
@@ -1,5 +0,0 @@
1
- """
2
- Copyright 2024-2025 Aplos Analytics
3
- All Rights Reserved. www.aplosanalytics.com LICENSED MATERIALS
4
- Property of Aplos Analytics, Utah, USA
5
- """