orionis 0.442.0__py3-none-any.whl → 0.444.0__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.
@@ -1,5 +1,6 @@
1
1
  import io
2
2
  import json
3
+ from os import walk
3
4
  import re
4
5
  import time
5
6
  import traceback
@@ -9,6 +10,7 @@ from contextlib import redirect_stdout, redirect_stderr
9
10
  from datetime import datetime
10
11
  from pathlib import Path
11
12
  from typing import Any, Dict, List, Optional, Tuple
13
+ from orionis.app import Orionis
12
14
  from orionis.container.resolver.resolver import Resolver
13
15
  from orionis.foundation.config.testing.enums.drivers import PersistentDrivers
14
16
  from orionis.foundation.config.testing.enums.mode import ExecutionMode
@@ -102,7 +104,9 @@ class UnitTest(IUnitTest):
102
104
  """
103
105
 
104
106
  def __init__(
105
- self
107
+ self,
108
+ app: Optional[IApplication] = None,
109
+ storage: Optional[str] = None
106
110
  ) -> None:
107
111
  """
108
112
  Initialize a UnitTest instance with default configuration and internal state.
@@ -113,11 +117,11 @@ class UnitTest(IUnitTest):
113
117
  -------
114
118
  None
115
119
  """
116
- # Application instance for dependency injection (set via __setApp)
117
- self.__app: Optional[IApplication] = None
120
+ # Application instance for dependency injection
121
+ self.__app: Optional[IApplication] = app or Orionis()
118
122
 
119
- # Storage path for test results (set via __setApp)
120
- self.__storage: Optional[str] = None
123
+ # Storage path for test results
124
+ self.__storage: Optional[str] = storage or self.__app.path('storage_testing')
121
125
 
122
126
  # Configuration values (set via configure)
123
127
  self.__verbosity: Optional[int] = None
@@ -220,6 +224,100 @@ class UnitTest(IUnitTest):
220
224
  # Return the instance to allow method chaining
221
225
  return self
222
226
 
227
+ def discoverTests(
228
+ self,
229
+ base_path: str | Path,
230
+ folder_path: str | List[str],
231
+ pattern: str,
232
+ test_name_pattern: Optional[str] = None,
233
+ tags: Optional[List[str]] = None
234
+ ) -> 'UnitTest':
235
+ """
236
+ Discover test cases from specified folders using flexible path discovery.
237
+
238
+ This method provides a convenient way to discover and load test cases from multiple folders
239
+ based on various path specifications. It supports wildcard discovery, single folder loading,
240
+ and multiple folder loading. The method automatically resolves paths relative to the base
241
+ directory and discovers all folders containing files matching the specified pattern.
242
+
243
+ Parameters
244
+ ----------
245
+ base_path : str or Path
246
+ Base directory path for resolving relative folder paths. This serves as the root
247
+ directory from which all folder searches are conducted.
248
+ folder_path : str or list of str
249
+ Specification of folders to search for test cases. Can be:
250
+ - '*' : Discover all folders containing matching files within base_path
251
+ - str : Single folder path relative to base_path
252
+ - list of str : Multiple folder paths relative to base_path
253
+ pattern : str
254
+ File name pattern to match test files, supporting wildcards (* and ?).
255
+ Examples: 'test_*.py', '*_test.py', 'test*.py'
256
+ test_name_pattern : str, optional
257
+ Regular expression pattern to filter test method names. Only tests whose
258
+ names match this pattern will be included. Default is None (no filtering).
259
+ tags : list of str, optional
260
+ List of tags to filter tests. Only tests decorated with matching tags
261
+ will be included. Default is None (no tag filtering).
262
+
263
+ Returns
264
+ -------
265
+ UnitTest
266
+ The current UnitTest instance with discovered tests added to the suite,
267
+ enabling method chaining.
268
+
269
+ Notes
270
+ -----
271
+ - All paths are resolved as absolute paths relative to the base_path
272
+ - When folder_path is '*', the method searches recursively through all subdirectories
273
+ - The method uses the existing discoverTestsInFolder method for actual test discovery
274
+ - Duplicate folders are automatically eliminated using a set data structure
275
+ - The method does not validate the existence of specified folders; validation
276
+ occurs during the actual test discovery process
277
+ """
278
+ # Resolve the base path as an absolute path from the current working directory
279
+ base_path = (Path.cwd() / base_path).resolve()
280
+
281
+ # Use a set to store discovered folders and automatically eliminate duplicates
282
+ discovered_folders = set()
283
+
284
+ # Handle wildcard discovery: search all folders containing matching files
285
+ if folder_path == '*':
286
+
287
+ # Search recursively through the entire base path for folders with matching files
288
+ discovered_folders.update(self.__listMatchingFolders(base_path, base_path, pattern))
289
+
290
+ # Handle multiple folder paths: process each folder in the provided list
291
+ elif isinstance(folder_path, list):
292
+ for custom in folder_path:
293
+ # Resolve each custom folder path relative to the base path
294
+ custom_path = (base_path / custom).resolve()
295
+ # Add all matching folders found within this custom path
296
+ discovered_folders.update(self.__listMatchingFolders(base_path, custom_path, pattern))
297
+
298
+ # Handle single folder path: process the single specified folder
299
+ else:
300
+
301
+ # Resolve the single folder path relative to the base path
302
+ custom_path = (base_path / folder_path).resolve()
303
+ # Add all matching folders found within this single path
304
+ discovered_folders.update(self.__listMatchingFolders(base_path, custom_path, pattern))
305
+
306
+ # Iterate through all discovered folders and perform test discovery
307
+ for folder in discovered_folders:
308
+
309
+ # Use the existing discoverTestsInFolder method to actually discover and load tests
310
+ self.discoverTestsInFolder(
311
+ base_path=base_path,
312
+ folder_path=folder,
313
+ pattern=pattern,
314
+ test_name_pattern=test_name_pattern or None,
315
+ tags=tags or None
316
+ )
317
+
318
+ # Return the current instance to enable method chaining
319
+ return self
320
+
223
321
  def discoverTestsInFolder(
224
322
  self,
225
323
  *,
@@ -1342,6 +1440,37 @@ class UnitTest(IUnitTest):
1342
1440
  # Return the suite containing only the filtered tests
1343
1441
  return filtered_suite
1344
1442
 
1443
+ def __listMatchingFolders(
1444
+ self,
1445
+ base_path: Path,
1446
+ custom_path: Path,
1447
+ pattern: str
1448
+ ) -> List[str]:
1449
+ """
1450
+ List folders within a given path containing files matching a pattern.
1451
+
1452
+ Parameters
1453
+ ----------
1454
+ base_path : Path
1455
+ The base directory path for calculating relative paths.
1456
+ custom_path : Path
1457
+ The directory path to search for matching files.
1458
+ pattern : str
1459
+ The filename pattern to match, supporting '*' and '?' wildcards.
1460
+
1461
+ Returns
1462
+ -------
1463
+ List[str]
1464
+ List of relative folder paths containing files matching the pattern.
1465
+ """
1466
+ regex = re.compile('^' + pattern.replace('*', '.*').replace('?', '.') + '$')
1467
+ matched_folders = set()
1468
+ for root, _, files in walk(str(custom_path)):
1469
+ if any(regex.fullmatch(file) for file in files):
1470
+ rel_path = Path(root).relative_to(base_path).as_posix()
1471
+ matched_folders.add(rel_path)
1472
+ return list(matched_folders)
1473
+
1345
1474
  def getTestNames(
1346
1475
  self
1347
1476
  ) -> List[str]:
orionis/test/kernel.py CHANGED
@@ -1,9 +1,4 @@
1
- from pathlib import Path
2
- import re
3
- from typing import List
4
- from os import walk
5
1
  from orionis.console.output.contracts.console import IConsole
6
- from orionis.foundation.config.testing.entities.testing import Testing
7
2
  from orionis.foundation.contracts.application import IApplication
8
3
  from orionis.test.contracts.kernel import ITestKernel
9
4
  from orionis.test.contracts.unit_test import IUnitTest
@@ -18,115 +13,67 @@ class TestKernel(ITestKernel):
18
13
  """
19
14
  Initialize the TestKernel with the provided application instance.
20
15
 
16
+ This constructor sets up the test kernel by validating the application
17
+ instance and resolving required dependencies for testing operations.
18
+
21
19
  Parameters
22
20
  ----------
23
21
  app : IApplication
24
- Application instance implementing the IApplication contract.
22
+ The application instance that provides dependency injection
23
+ and service resolution capabilities.
25
24
 
26
25
  Raises
27
26
  ------
28
27
  OrionisTestConfigException
29
- If the provided app is not an instance of IApplication.
28
+ If the provided app parameter is not an instance of IApplication.
29
+
30
+ Returns
31
+ -------
32
+ None
33
+ This is a constructor method and does not return a value.
30
34
  """
35
+ # Validate that the provided app parameter is an IApplication instance
31
36
  if not isinstance(app, IApplication):
32
37
  raise OrionisTestConfigException(
33
38
  f"Failed to initialize TestKernel: expected IApplication, got {type(app).__module__}.{type(app).__name__}."
34
39
  )
35
40
 
36
- self.__config = Testing(**app.config('testing'))
41
+ # Resolve the unit test service from the application container
37
42
  self.__unit_test: IUnitTest = app.make('core.orionis.testing')
38
- self.__unit_test._UnitTest__app = app
39
- self.__unit_test._UnitTest__storage = app.path('storage_testing')
40
- self.__console: IConsole = app.make('core.orionis.console')
41
-
42
- def __listMatchingFolders(
43
- self,
44
- base_path: Path,
45
- custom_path: Path,
46
- pattern: str
47
- ) -> List[str]:
48
- """
49
- List folders within a given path containing files matching a pattern.
50
-
51
- Parameters
52
- ----------
53
- base_path : Path
54
- The base directory path for calculating relative paths.
55
- custom_path : Path
56
- The directory path to search for matching files.
57
- pattern : str
58
- The filename pattern to match, supporting '*' and '?' wildcards.
59
43
 
60
- Returns
61
- -------
62
- List[str]
63
- List of relative folder paths containing files matching the pattern.
64
- """
65
- regex = re.compile('^' + pattern.replace('*', '.*').replace('?', '.') + '$')
66
- matched_folders = set()
67
- for root, _, files in walk(str(custom_path)):
68
- if any(regex.fullmatch(file) for file in files):
69
- rel_path = Path(root).relative_to(base_path).as_posix()
70
- matched_folders.add(rel_path)
71
- return list(matched_folders)
44
+ # Resolve the console service from the application container
45
+ self.__console: IConsole = app.make('core.orionis.console')
72
46
 
73
47
  def handle(self) -> IUnitTest:
74
48
  """
75
- Configure, discover, and execute unit tests based on the current configuration.
49
+ Execute the unit test suite and handle any exceptions that occur during testing.
50
+
51
+ This method serves as the main entry point for running tests through the test kernel.
52
+ It executes the unit test suite via the injected unit test service and provides
53
+ comprehensive error handling for both expected test failures and unexpected errors.
54
+ The method ensures graceful termination of the application in case of any failures.
76
55
 
77
56
  Returns
78
57
  -------
79
58
  IUnitTest
80
- The configured and executed unit test instance.
59
+ The unit test service instance after successful test execution. This allows
60
+ for potential chaining of operations or access to test results.
81
61
 
82
62
  Raises
83
63
  ------
84
- OrionisTestFailureException
85
- If test execution fails.
86
- Exception
87
- If an unexpected error occurs during test execution.
64
+ SystemExit
65
+ Indirectly raised through console.exitError() when test failures or
66
+ unexpected errors occur during test execution.
88
67
  """
89
- try:
90
- self.__unit_test.configure(
91
- verbosity=self.__config.verbosity,
92
- execution_mode=self.__config.execution_mode,
93
- max_workers=self.__config.max_workers,
94
- fail_fast=self.__config.fail_fast,
95
- print_result=self.__config.print_result,
96
- throw_exception=self.__config.throw_exception,
97
- persistent=self.__config.persistent,
98
- persistent_driver=self.__config.persistent_driver,
99
- web_report=self.__config.web_report
100
- )
101
-
102
- base_path = (Path.cwd() / self.__config.base_path).resolve()
103
- folder_path = self.__config.folder_path
104
- pattern = self.__config.pattern
105
- discovered_folders = set()
106
-
107
- if folder_path == '*':
108
- discovered_folders.update(self.__listMatchingFolders(base_path, base_path, pattern))
109
- elif isinstance(folder_path, list):
110
- for custom in folder_path:
111
- custom_path = (base_path / custom).resolve()
112
- discovered_folders.update(self.__listMatchingFolders(base_path, custom_path, pattern))
113
- else:
114
- custom_path = (base_path / folder_path).resolve()
115
- discovered_folders.update(self.__listMatchingFolders(base_path, custom_path, pattern))
116
-
117
- for folder in discovered_folders:
118
- self.__unit_test.discoverTestsInFolder(
119
- folder_path=folder,
120
- base_path=self.__config.base_path,
121
- pattern=pattern,
122
- test_name_pattern=self.__config.test_name_pattern or None,
123
- tags=self.__config.tags or None
124
- )
125
68
 
69
+ # Execute the unit test suite through the injected unit test service
70
+ try:
126
71
  return self.__unit_test.run()
127
72
 
73
+ # Handle expected test failures with a descriptive error message
128
74
  except OrionisTestFailureException as e:
129
75
  self.__console.exitError(f"Test execution failed: {e}")
130
76
 
77
+ # Handle any unexpected errors that occur during test execution
131
78
  except Exception as e:
132
79
  self.__console.exitError(f"An unexpected error occurred: {e}")
@@ -1,4 +1,4 @@
1
- from orionis.support.facades.workers import Workers
1
+ from orionis.services.system.workers import Workers
2
2
  from orionis.test.exceptions import OrionisTestValueError
3
3
 
4
4
  class __ValidWorkers:
@@ -25,7 +25,7 @@ class __ValidWorkers:
25
25
  OrionisTestValueError
26
26
  If `max_workers` is not a positive integer within the allowed range.
27
27
  """
28
- max_allowed = Workers.calculate()
28
+ max_allowed = Workers().calculate()
29
29
  if not isinstance(max_workers, int) or max_workers < 1 or max_workers > max_allowed:
30
30
  raise OrionisTestValueError(
31
31
  f"Invalid max_workers: Expected a positive integer between 1 and {max_allowed}, got '{max_workers}' ({type(max_workers).__name__})."
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.442.0
3
+ Version: 0.444.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -2,11 +2,16 @@ orionis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  orionis/app.py,sha256=b69fOzj2J8Aw5g0IldWZXixUDeeTO9vcHc_Njses9HU,603
3
3
  orionis/console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  orionis/console/kernel.py,sha256=1CuBCLR6KItRt0_m50YQXirJUMX6lJf4Z4vvOjBqaUU,856
5
+ orionis/console/args/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ orionis/console/args/argument.py,sha256=ZbY8Gbxbk6pvORRL1evzXB9qGesepD0zdbMsbqfcFjw,14688
7
+ orionis/console/args/parser.py,sha256=WRaeyRjqnwXKBLn56sK2jubS_DAPbfVQ2rtfUGluA8A,101
8
+ orionis/console/args/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ orionis/console/args/enums/actions.py,sha256=S3T-vWS6DJSGtANrq3od3-90iYAjPvJwaOZ2V02y34c,1222
5
10
  orionis/console/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
11
  orionis/console/base/command.py,sha256=2kKyTaEzI16Up-XCUeNeJmDWPLN-CweQm3EgrN9U8NQ,3027
7
12
  orionis/console/base/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
13
  orionis/console/base/contracts/command.py,sha256=s9yjma-s1URkVm0EbVvSkETAm-N8xX7OnZS43P8pvk8,1957
9
- orionis/console/commands/version.py,sha256=TfiuMCcESdlNuhnbl_h9qbOb8aYDXcc5X1J5LfD1v7M,1041
14
+ orionis/console/commands/version.py,sha256=kR8xzyc-Wisk7AXqg3Do7M9xTg_CxJgAtESPGrbRtpI,1673
10
15
  orionis/console/contracts/kernel.py,sha256=mh4LlhEYHh3FuGZZQ0GBhD6ZLa5YQvaNj2r01IIHI5Y,826
11
16
  orionis/console/core/reactor.py,sha256=lNfj-L4MKZhBn07l4H5L5dVW2xBRiq6-kyIuqnUNawQ,73
12
17
  orionis/console/dumper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -167,13 +172,14 @@ orionis/foundation/exceptions/value.py,sha256=hQhXybXEnaa59ba7JxG65jceHt3mnql9My
167
172
  orionis/foundation/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
173
  orionis/foundation/providers/console_provider.py,sha256=wsv0RjoYU9MatC1ZRBAtV9iCVLzLWT2rg7MQFXwqgvo,1341
169
174
  orionis/foundation/providers/dumper_provider.py,sha256=d0k9yKVfwf40W4If0_rF09odLDXFA1w9jxU1MvZvCbo,1498
175
+ orionis/foundation/providers/inspirational_provider.py,sha256=ZIsuEq2Sif7C1b1hYC7_mEBd0kGwd8KWd-fHyyd6Qs4,2298
170
176
  orionis/foundation/providers/logger_provider.py,sha256=PvwMxP5TKmn9DP8H8nJfyr16XgiJaGHyxPSMOpFgv84,1448
171
177
  orionis/foundation/providers/path_resolver_provider.py,sha256=s44Mg68RsUNPlilQlXMBE7onVexa7kyDmVQmci1JL4g,1342
172
178
  orionis/foundation/providers/progress_bar_provider.py,sha256=P__zpCyC29WCwErYGbh5dgcMRxw3XYmHzaUkzms9vPM,1345
173
- orionis/foundation/providers/testing_provider.py,sha256=o47qiK8Xoz4hfsxw4jMnMxEbSseJFIdJT-WqxGurqGc,1426
179
+ orionis/foundation/providers/testing_provider.py,sha256=fSZfwKnScTxGlGrcEPReGIiOPs8XkoEaNNARN1wC6LU,2939
174
180
  orionis/foundation/providers/workers_provider.py,sha256=YMRLdq_YQnR1unnoYvDpYQZbLli04f0CckuR6Q--wKg,1379
175
181
  orionis/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
- orionis/metadata/framework.py,sha256=zesfXhBIOIwd41wkhNUqnbo1wAhgYXXisF0zxeGYCaU,4088
182
+ orionis/metadata/framework.py,sha256=Que9Q_spu-gld9CNZt90yTGnUPDQBWf87yrjBiveqPQ,4088
177
183
  orionis/metadata/package.py,sha256=k7Yriyp5aUcR-iR8SK2ec_lf0_Cyc-C7JczgXa-I67w,16039
178
184
  orionis/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
179
185
  orionis/services/asynchrony/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -203,6 +209,10 @@ orionis/services/environment/key/key_generator.py,sha256=q39GD-VgRhH0uYB0ZdfUnq9
203
209
  orionis/services/environment/validators/__init__.py,sha256=S0Us4_BtKPuOMQZf4uFFqUINB8l6Eb9vJbbxUCzIhfc,135
204
210
  orionis/services/environment/validators/key_name.py,sha256=TSwVhQCbBYPZ_4zZ-o16yT_2pOe3WRWl9d8KzfDzWyg,1660
205
211
  orionis/services/environment/validators/types.py,sha256=hiTszo7hS_1zQLclUIDOFUTGy2Kg2n3dZe7jU8Pmf1I,2839
212
+ orionis/services/inspirational/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
213
+ orionis/services/inspirational/inspire.py,sha256=dUxwkNLjKC4jdi06cVB1gfyB2zHjfgdhYhwKtsOTf0Q,4090
214
+ orionis/services/inspirational/quotes.py,sha256=9hCIEFE0DdfXLaGq_SzFpXlC2AbGSnuFLzyec4Rd1H0,53455
215
+ orionis/services/inspirational/contracts/inspire.py,sha256=--GGHAIxeEjQS0Ra3bilZ7lL5MWyLT9XhZ7-m-ZmqwU,404
206
216
  orionis/services/introspection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
217
  orionis/services/introspection/reflection.py,sha256=_Wdy8Wtt3RKXAqg9o5rvYa_Hyu-Z4674LKnNVg7u7pU,11467
208
218
  orionis/services/introspection/abstract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -271,6 +281,7 @@ orionis/support/entities/base.py,sha256=kVx9YWZjYS6C9MraarU7U12OeT5enBp5XqizrQm4
271
281
  orionis/support/facades/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
272
282
  orionis/support/facades/console.py,sha256=OvxQ-r8PsPocJTaIUftmJnnr4SuONHQWYFz2_r1CcR4,412
273
283
  orionis/support/facades/dumper.py,sha256=XAHJTXrMjPchGQMIAU0hlcUjMZQK_ogrE0voRm2HdI8,434
284
+ orionis/support/facades/inspire.py,sha256=m2UbKXyggxASd0HTRT5M-mJ0FvMP_NIJ0lW8HTQMi4M,759
274
285
  orionis/support/facades/logger.py,sha256=2EbSbJDSyKFUQmZUpoMsc5704Mzj2Skehx_9UpDluhc,450
275
286
  orionis/support/facades/path_resolver.py,sha256=lRLbu69i8PzM-I53gzXroHIurxzyFdssNWOYMjPgqco,442
276
287
  orionis/support/facades/progress_bar.py,sha256=NOCwAV873GptedgySMZpM_A_DoM-UQrMg2kDHpS6zi8,423
@@ -294,7 +305,7 @@ orionis/support/standard/exceptions/value.py,sha256=rsyWFQweImaJGTJa7Id7RhPlwWJ4
294
305
  orionis/support/wrapper/__init__.py,sha256=jGoWoIGYuRYqMYQKlrX7Dpcbg-AGkHoB_aM2xhu73yc,62
295
306
  orionis/support/wrapper/dot_dict.py,sha256=T8xWwwOhBZHNeXRwE_CxvOwG9UFxsLqNmOJjV2CNIrc,7284
296
307
  orionis/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
297
- orionis/test/kernel.py,sha256=OXsrfm0wLdm8eg1dvmE6kqK_0xXI6RcZJ5HUaGteGas,5185
308
+ orionis/test/kernel.py,sha256=nJJDN2xusp9VZzezfocIvoenT2BheverjSovYCbRECg,3229
298
309
  orionis/test/cases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
299
310
  orionis/test/cases/asynchronous.py,sha256=3e1Y3qzIxVU7i7lbLFEVyJ89IA74JsB7famx71W-p2E,1974
300
311
  orionis/test/cases/synchronous.py,sha256=S5jhuDEZ5I9wosrTFaCtowkD5r5HzJH6mKPOdEJcDJE,1734
@@ -307,7 +318,7 @@ orionis/test/contracts/render.py,sha256=wpDQzUtT0r8KFZ7zPcxWHXQ1EVNKxzA_rZ6ZKUcZ
307
318
  orionis/test/contracts/test_result.py,sha256=SNXJ2UerkweYn7uCT0i0HmMGP0XBrL_9KJs-0ZvIYU4,4002
308
319
  orionis/test/contracts/unit_test.py,sha256=PSnjEyM-QGQ3Pm0ZOqaa8QdPOtilGBVO4R87JYdVa-8,5386
309
320
  orionis/test/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
310
- orionis/test/core/unit_test.py,sha256=NiFk1u_a69JjQXBkXIzvlswoOniNm4YV4_dDGajRqQk,57400
321
+ orionis/test/core/unit_test.py,sha256=IIpPLM4pXZKCpKAZ-0PPatGuWjBXxgjKQxB8IJLB1zY,63310
311
322
  orionis/test/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
312
323
  orionis/test/entities/result.py,sha256=IMAd1AiwOf2z8krTDBFMpQe_1PG4YJ5Z0qpbr9xZwjg,4507
313
324
  orionis/test/enums/__init__.py,sha256=M3imAgMvKFTKg55FbtVoY3zxj7QRY9AfaUWxiSZVvn4,66
@@ -338,10 +349,10 @@ orionis/test/validators/tags.py,sha256=Qv-p8XFyAjY7OI861s52eADGf3LqzOWYfKt4L1cpo
338
349
  orionis/test/validators/throw_exception.py,sha256=PLtM94BArQf11VJhxfBHJSHARZSia-Q8ePixctU2JwQ,893
339
350
  orionis/test/validators/verbosity.py,sha256=rADzM82cPcJ2_6crszpobJuwb5WihWNQf6i4M_yrCpw,1785
340
351
  orionis/test/validators/web_report.py,sha256=n9BfzOZz6aEiNTypXcwuWbFRG0OdHNSmCNusHqc02R8,853
341
- orionis/test/validators/workers.py,sha256=HcZ3cnrk6u7cvM1xZpn_lsglHAq69_jx9RcTSvLrdb0,1204
352
+ orionis/test/validators/workers.py,sha256=rWcdRexINNEmGaO7mnc1MKUxkHKxrTsVuHgbnIfJYgc,1206
342
353
  orionis/test/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
343
354
  orionis/test/view/render.py,sha256=f-zNhtKSg9R5Njqujbg2l2amAs2-mRVESneLIkWOZjU,4082
344
- orionis-0.442.0.dist-info/licenses/LICENCE,sha256=JhC-z_9mbpUrCfPjcl3DhDA8trNDMzb57cvRSam1avc,1463
355
+ orionis-0.444.0.dist-info/licenses/LICENCE,sha256=JhC-z_9mbpUrCfPjcl3DhDA8trNDMzb57cvRSam1avc,1463
345
356
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
346
357
  tests/container/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
347
358
  tests/container/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -487,8 +498,8 @@ tests/testing/validators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
487
498
  tests/testing/validators/test_testing_validators.py,sha256=WPo5GxTP6xE-Dw3X1vZoqOMpb6HhokjNSbgDsDRDvy4,16588
488
499
  tests/testing/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
489
500
  tests/testing/view/test_render.py,sha256=tnnMBwS0iKUIbogLvu-7Rii50G6Koddp3XT4wgdFEYM,1050
490
- orionis-0.442.0.dist-info/METADATA,sha256=vwy4hSn0a2U7BiN225bv_5ELmQvCLkYyuP0rGbaFJv8,4772
491
- orionis-0.442.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
492
- orionis-0.442.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
493
- orionis-0.442.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
494
- orionis-0.442.0.dist-info/RECORD,,
501
+ orionis-0.444.0.dist-info/METADATA,sha256=YgxccCDNizNHssu-14sVeL6dVMvkTMfvdfd3UcB1SeY,4772
502
+ orionis-0.444.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
503
+ orionis-0.444.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
504
+ orionis-0.444.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
505
+ orionis-0.444.0.dist-info/RECORD,,