orionis 0.379.0__py3-none-any.whl → 0.381.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.
- orionis/container/resolver/resolver.py +141 -0
- orionis/metadata/framework.py +1 -1
- orionis/test/core/unit_test.py +101 -44
- {orionis-0.379.0.dist-info → orionis-0.381.0.dist-info}/METADATA +1 -1
- {orionis-0.379.0.dist-info → orionis-0.381.0.dist-info}/RECORD +10 -10
- tests/example/test_example.py +1 -1
- {orionis-0.379.0.dist-info → orionis-0.381.0.dist-info}/WHEEL +0 -0
- {orionis-0.379.0.dist-info → orionis-0.381.0.dist-info}/licenses/LICENCE +0 -0
- {orionis-0.379.0.dist-info → orionis-0.381.0.dist-info}/top_level.txt +0 -0
- {orionis-0.379.0.dist-info → orionis-0.381.0.dist-info}/zip-safe +0 -0
|
@@ -8,6 +8,7 @@ from orionis.container.exceptions import OrionisContainerException
|
|
|
8
8
|
from orionis.services.introspection.callables.reflection import ReflectionCallable
|
|
9
9
|
from orionis.services.introspection.concretes.reflection import ReflectionConcrete
|
|
10
10
|
from orionis.services.introspection.dependencies.entities.known_dependencies import KnownDependency
|
|
11
|
+
from orionis.services.introspection.dependencies.entities.method_dependencies import MethodDependency
|
|
11
12
|
|
|
12
13
|
class Resolver(IResolver):
|
|
13
14
|
"""
|
|
@@ -65,6 +66,146 @@ class Resolver(IResolver):
|
|
|
65
66
|
elif binding.lifetime == Lifetime.SCOPED:
|
|
66
67
|
return self.__resolveScoped(binding, *args, **kwargs)
|
|
67
68
|
|
|
69
|
+
def resolveType(
|
|
70
|
+
self,
|
|
71
|
+
type_: Callable[..., Any],
|
|
72
|
+
*args,
|
|
73
|
+
**kwargs
|
|
74
|
+
) -> Any:
|
|
75
|
+
"""
|
|
76
|
+
Forces resolution of a type whether it's registered in the container or not.
|
|
77
|
+
|
|
78
|
+
Parameters
|
|
79
|
+
----------
|
|
80
|
+
type_ : Callable[..., Any]
|
|
81
|
+
The type or callable to resolve.
|
|
82
|
+
*args : tuple
|
|
83
|
+
Positional arguments to pass to the constructor/callable.
|
|
84
|
+
**kwargs : dict
|
|
85
|
+
Keyword arguments to pass to the constructor/callable.
|
|
86
|
+
|
|
87
|
+
Returns
|
|
88
|
+
-------
|
|
89
|
+
Any
|
|
90
|
+
The resolved instance.
|
|
91
|
+
|
|
92
|
+
Raises
|
|
93
|
+
------
|
|
94
|
+
OrionisContainerException
|
|
95
|
+
If the type cannot be resolved.
|
|
96
|
+
"""
|
|
97
|
+
|
|
98
|
+
# Try to resolve the type with the provided arguments
|
|
99
|
+
# If the type is already bound in the container, resolve it directly
|
|
100
|
+
# or if args or kwargs are provided, instantiate it directly
|
|
101
|
+
# If the type is a concrete class, instantiate it with resolved dependencies
|
|
102
|
+
try:
|
|
103
|
+
|
|
104
|
+
# Check if the type is already bound in the container
|
|
105
|
+
if self.container.bound(type_):
|
|
106
|
+
binding = self.container.getBinding(type_)
|
|
107
|
+
return self.resolve(binding, *args, **kwargs)
|
|
108
|
+
|
|
109
|
+
# If args or kwargs are provided, use them directly
|
|
110
|
+
if args or kwargs:
|
|
111
|
+
|
|
112
|
+
# For classes
|
|
113
|
+
if isinstance(type_, type):
|
|
114
|
+
return type_(*args, **kwargs)
|
|
115
|
+
|
|
116
|
+
# For callables
|
|
117
|
+
elif callable(type_):
|
|
118
|
+
return type_(*args, **kwargs)
|
|
119
|
+
|
|
120
|
+
# Otherwise use reflection to resolve dependencies
|
|
121
|
+
# If the type is a concrete class, instantiate it with resolved dependencies
|
|
122
|
+
elif ReflectionConcrete.isConcreteClass(type_):
|
|
123
|
+
return type_(**self.__resolveDependencies(type_, is_class=True))
|
|
124
|
+
|
|
125
|
+
# Try to call directly if it's a callable
|
|
126
|
+
elif callable(type_) and not isinstance(type_, type):
|
|
127
|
+
return type_(**self.__resolveDependencies(type_, is_class=False))
|
|
128
|
+
|
|
129
|
+
# If the type is neither a concrete class nor a callable, raise an exception
|
|
130
|
+
raise OrionisContainerException(
|
|
131
|
+
f"Cannot force resolve: {getattr(type_, '__name__', str(type_))} is neither a concrete class nor a callable."
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
except Exception as e:
|
|
135
|
+
|
|
136
|
+
# Get the type name safely to avoid AttributeError
|
|
137
|
+
type_name = getattr(type_, '__name__', str(type_))
|
|
138
|
+
module_name = getattr(type_, '__module__', "unknown module")
|
|
139
|
+
|
|
140
|
+
# Provide more detailed error message
|
|
141
|
+
error_msg = f"Error while force-resolving '{type_name}' from '{module_name}':\n{str(e)}"
|
|
142
|
+
|
|
143
|
+
# If it's already an OrionisContainerException, just re-raise it with the context
|
|
144
|
+
if isinstance(e, OrionisContainerException):
|
|
145
|
+
raise e from None
|
|
146
|
+
|
|
147
|
+
# Raise a new OrionisContainerException with the original exception as context
|
|
148
|
+
else:
|
|
149
|
+
raise OrionisContainerException(error_msg) from e
|
|
150
|
+
|
|
151
|
+
def resolveSignature(
|
|
152
|
+
self,
|
|
153
|
+
signature: MethodDependency
|
|
154
|
+
) -> dict:
|
|
155
|
+
"""
|
|
156
|
+
Resolves dependencies defined in a method signature.
|
|
157
|
+
|
|
158
|
+
Parameters
|
|
159
|
+
----------
|
|
160
|
+
signature : MethodDependency
|
|
161
|
+
The method dependency information to resolve.
|
|
162
|
+
|
|
163
|
+
Returns
|
|
164
|
+
-------
|
|
165
|
+
dict
|
|
166
|
+
A dictionary of resolved parameter values.
|
|
167
|
+
|
|
168
|
+
Raises
|
|
169
|
+
------
|
|
170
|
+
OrionisContainerException
|
|
171
|
+
If any dependencies cannot be resolved.
|
|
172
|
+
"""
|
|
173
|
+
# If no dependencies to resolve, return empty dict
|
|
174
|
+
if not signature.resolved and not signature.unresolved:
|
|
175
|
+
return {}
|
|
176
|
+
|
|
177
|
+
# If there are unresolved dependencies, raise an error
|
|
178
|
+
if signature.unresolved:
|
|
179
|
+
raise OrionisContainerException(
|
|
180
|
+
f"Cannot resolve method dependencies because the following parameters are unresolved: {', '.join(signature.unresolved)}."
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
# Create a dict of resolved dependencies
|
|
184
|
+
params = {}
|
|
185
|
+
for param_name, dep in signature.resolved.items():
|
|
186
|
+
if isinstance(dep, KnownDependency):
|
|
187
|
+
# Try to resolve the dependency using the container
|
|
188
|
+
if self.container.bound(dep.type):
|
|
189
|
+
params[param_name] = self.resolve(
|
|
190
|
+
self.container.getBinding(dep.type)
|
|
191
|
+
)
|
|
192
|
+
elif self.container.bound(dep.full_class_path):
|
|
193
|
+
params[param_name] = self.resolve(
|
|
194
|
+
self.container.getBinding(dep.full_class_path)
|
|
195
|
+
)
|
|
196
|
+
# Try to resolve directly if it's a concrete type
|
|
197
|
+
elif ReflectionConcrete.isConcreteClass(dep.type):
|
|
198
|
+
params[param_name] = self.resolveType(dep.type)
|
|
199
|
+
else:
|
|
200
|
+
raise OrionisContainerException(
|
|
201
|
+
f"Cannot resolve dependency '{param_name}' of type '{dep.type.__name__}'."
|
|
202
|
+
)
|
|
203
|
+
else:
|
|
204
|
+
# Use default value
|
|
205
|
+
params[param_name] = dep
|
|
206
|
+
|
|
207
|
+
return params
|
|
208
|
+
|
|
68
209
|
def __resolveTransient(self, binding: Binding, *args, **kwargs) -> Any:
|
|
69
210
|
"""
|
|
70
211
|
Resolves a service with transient lifetime.
|
orionis/metadata/framework.py
CHANGED
orionis/test/core/unit_test.py
CHANGED
|
@@ -10,8 +10,11 @@ from contextlib import redirect_stdout, redirect_stderr
|
|
|
10
10
|
from datetime import datetime
|
|
11
11
|
from pathlib import Path
|
|
12
12
|
from typing import Any, Dict, List, Optional, Tuple
|
|
13
|
+
from orionis.container.resolver.resolver import Resolver
|
|
13
14
|
from orionis.foundation.contracts.application import IApplication
|
|
15
|
+
from orionis.services.introspection.concretes.reflection import ReflectionConcrete
|
|
14
16
|
from orionis.services.introspection.instances.reflection import ReflectionInstance
|
|
17
|
+
from orionis.services.introspection.dependencies.entities.known_dependencies import KnownDependency
|
|
15
18
|
from orionis.services.system.workers import Workers
|
|
16
19
|
from orionis.test.entities.result import TestResult
|
|
17
20
|
from orionis.test.enums import (
|
|
@@ -664,79 +667,133 @@ class UnitTest(IUnitTest):
|
|
|
664
667
|
# Return the result along with captured output and error streams
|
|
665
668
|
return result, output_buffer, error_buffer
|
|
666
669
|
|
|
667
|
-
def
|
|
668
|
-
self
|
|
669
|
-
|
|
670
|
-
error_buffer: io.StringIO
|
|
671
|
-
) -> unittest.TestResult:
|
|
670
|
+
def __resolveFlattenedTestSuite(
|
|
671
|
+
self
|
|
672
|
+
) -> unittest.TestSuite:
|
|
672
673
|
"""
|
|
673
|
-
|
|
674
|
+
Resolves dependencies for all test cases in the suite and creates a flattened test suite with injected dependencies.
|
|
675
|
+
|
|
676
|
+
Processes each test case, identifies dependencies in test method signatures, and resolves
|
|
677
|
+
them using the application's dependency resolver. Creates wrapper methods that automatically
|
|
678
|
+
inject the resolved dependencies when tests are executed.
|
|
674
679
|
|
|
675
680
|
Parameters
|
|
676
681
|
----------
|
|
677
|
-
|
|
678
|
-
A buffer to capture the standard output during test execution.
|
|
679
|
-
error_buffer : io.StringIO
|
|
680
|
-
A buffer to capture the standard error during test execution.
|
|
682
|
+
None
|
|
681
683
|
|
|
682
684
|
Returns
|
|
683
685
|
-------
|
|
684
|
-
unittest.
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
686
|
+
unittest.TestSuite
|
|
687
|
+
A new test suite with all tests having their dependencies resolved and injected.
|
|
688
|
+
|
|
689
|
+
Raises
|
|
690
|
+
------
|
|
691
|
+
OrionisTestValueError
|
|
692
|
+
If any test method has dependencies that cannot be resolved.
|
|
688
693
|
|
|
689
|
-
|
|
690
|
-
|
|
694
|
+
Notes
|
|
695
|
+
-----
|
|
696
|
+
- Test methods with decorators are left as-is
|
|
697
|
+
- Test methods without dependencies are added directly
|
|
698
|
+
- Test methods with unresolved dependencies trigger an error
|
|
699
|
+
"""
|
|
691
700
|
|
|
692
701
|
# Create a new test suite with tests that have their dependencies resolved
|
|
693
702
|
flattened_suite = unittest.TestSuite()
|
|
694
|
-
|
|
695
|
-
|
|
703
|
+
|
|
696
704
|
# Iterate through all test cases
|
|
697
705
|
for test_case in self.__flattenTestSuite(self.suite):
|
|
706
|
+
|
|
698
707
|
# Get the test method name
|
|
699
|
-
method_name =
|
|
700
|
-
|
|
701
|
-
#
|
|
708
|
+
method_name = ReflectionInstance(test_case).getAttribute("_testMethodName")
|
|
709
|
+
|
|
710
|
+
# Is not method_name, use the original test case
|
|
702
711
|
if not method_name:
|
|
703
712
|
flattened_suite.addTest(test_case)
|
|
704
713
|
continue
|
|
705
|
-
|
|
714
|
+
|
|
715
|
+
# Get the actual method object
|
|
716
|
+
test_method = getattr(test_case.__class__, method_name, None)
|
|
717
|
+
|
|
718
|
+
# Check for all decorators on the test method
|
|
719
|
+
decorators = []
|
|
720
|
+
|
|
721
|
+
# Get decorators from the test method
|
|
722
|
+
if hasattr(test_method, '__wrapped__'):
|
|
723
|
+
original = test_method
|
|
724
|
+
while hasattr(original, '__wrapped__'):
|
|
725
|
+
# Try to get decorator name
|
|
726
|
+
if hasattr(original, '__qualname__'):
|
|
727
|
+
decorators.append(original.__qualname__)
|
|
728
|
+
elif hasattr(original, '__name__'):
|
|
729
|
+
decorators.append(original.__name__)
|
|
730
|
+
original = original.__wrapped__
|
|
731
|
+
|
|
732
|
+
# If use decorators, use original test method
|
|
733
|
+
if decorators:
|
|
734
|
+
flattened_suite.addTest(test_case)
|
|
735
|
+
continue
|
|
736
|
+
|
|
706
737
|
# Extract dependencies for the test method
|
|
707
|
-
|
|
708
|
-
|
|
738
|
+
signature = ReflectionInstance(test_case).getMethodDependencies(method_name)
|
|
739
|
+
|
|
709
740
|
# If no dependencies to resolve, just add the original test
|
|
710
|
-
if not
|
|
741
|
+
if (not signature.resolved and not signature.unresolved) or \
|
|
742
|
+
(not signature.resolved and len(signature.unresolved) > 0):
|
|
711
743
|
flattened_suite.addTest(test_case)
|
|
712
744
|
continue
|
|
713
|
-
|
|
745
|
+
|
|
746
|
+
# If there are unresolved dependencies, raise an error
|
|
747
|
+
if (len(signature.unresolved) > 0):
|
|
748
|
+
raise OrionisTestValueError(
|
|
749
|
+
f"Test method '{method_name}' in class '{test_case.__class__.__name__}' has unresolved dependencies: {signature.unresolved}. "
|
|
750
|
+
"Please ensure all dependencies are correctly defined and available."
|
|
751
|
+
)
|
|
752
|
+
|
|
714
753
|
# Create a specialized test case with resolved dependencies
|
|
715
|
-
test_class = test_case.
|
|
754
|
+
test_class = ReflectionInstance(test_case).getClass()
|
|
716
755
|
original_method = getattr(test_class, method_name)
|
|
717
|
-
|
|
756
|
+
|
|
718
757
|
# Create a dict of resolved dependencies
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
from orionis.services.introspection.dependencies.entities.known_dependencies import KnownDependency
|
|
722
|
-
if isinstance(v, KnownDependency):
|
|
723
|
-
args_[k] = app.make(v.type)
|
|
724
|
-
|
|
758
|
+
params = Resolver(self.app).resolveSignature(signature)
|
|
759
|
+
|
|
725
760
|
# Create a wrapper method that injects dependencies
|
|
726
|
-
def create_test_wrapper(original_test, resolved_args
|
|
761
|
+
def create_test_wrapper(original_test, resolved_args:dict):
|
|
727
762
|
def wrapper(self_instance):
|
|
728
|
-
|
|
729
|
-
args_list.extend(unresolved_args)
|
|
730
|
-
return original_test(self_instance, *args_list)
|
|
763
|
+
return original_test(self_instance, **resolved_args)
|
|
731
764
|
return wrapper
|
|
732
|
-
|
|
765
|
+
|
|
733
766
|
# Create a new test case with the wrapped method
|
|
734
|
-
setattr(test_class, f"_wrapped_{method_name}", create_test_wrapper(original_method,
|
|
767
|
+
setattr(test_class, f"_wrapped_{method_name}", create_test_wrapper(original_method, params))
|
|
735
768
|
setattr(test_case, '_testMethodName', f"_wrapped_{method_name}")
|
|
736
|
-
|
|
769
|
+
|
|
737
770
|
# Add the modified test case to the suite
|
|
738
771
|
flattened_suite.addTest(test_case)
|
|
739
|
-
|
|
772
|
+
|
|
773
|
+
# Return the flattened suite with resolved dependencies
|
|
774
|
+
return flattened_suite
|
|
775
|
+
|
|
776
|
+
def __runTestsSequentially(
|
|
777
|
+
self,
|
|
778
|
+
output_buffer: io.StringIO,
|
|
779
|
+
error_buffer: io.StringIO
|
|
780
|
+
) -> unittest.TestResult:
|
|
781
|
+
"""
|
|
782
|
+
Executes the test suite sequentially, capturing the output and error streams.
|
|
783
|
+
|
|
784
|
+
Parameters
|
|
785
|
+
----------
|
|
786
|
+
output_buffer : io.StringIO
|
|
787
|
+
A buffer to capture the standard output during test execution.
|
|
788
|
+
error_buffer : io.StringIO
|
|
789
|
+
A buffer to capture the standard error during test execution.
|
|
790
|
+
|
|
791
|
+
Returns
|
|
792
|
+
-------
|
|
793
|
+
unittest.TestResult
|
|
794
|
+
The result of the test suite execution, containing information about
|
|
795
|
+
passed, failed, and skipped tests.
|
|
796
|
+
"""
|
|
740
797
|
|
|
741
798
|
# Create a custom result class to capture detailed test results
|
|
742
799
|
with redirect_stdout(output_buffer), redirect_stderr(error_buffer):
|
|
@@ -746,7 +803,7 @@ class UnitTest(IUnitTest):
|
|
|
746
803
|
failfast=self.fail_fast,
|
|
747
804
|
resultclass=self.__customResultClass()
|
|
748
805
|
)
|
|
749
|
-
result = runner.run(
|
|
806
|
+
result = runner.run(self.__resolveFlattenedTestSuite())
|
|
750
807
|
|
|
751
808
|
# Return the result object containing test outcomes
|
|
752
809
|
return result
|
|
@@ -780,7 +837,7 @@ class UnitTest(IUnitTest):
|
|
|
780
837
|
"""
|
|
781
838
|
|
|
782
839
|
# Flatten the test suite to get individual test cases
|
|
783
|
-
test_cases = list(self.
|
|
840
|
+
test_cases = list(self.__resolveFlattenedTestSuite())
|
|
784
841
|
|
|
785
842
|
# Create a custom result instance to collect all results
|
|
786
843
|
result_class = self.__customResultClass()
|
|
@@ -134,7 +134,7 @@ orionis/container/facades/facade.py,sha256=wIjcQKxQa0xlTGGd6UIakenHMv0mM1BVPI7kt
|
|
|
134
134
|
orionis/container/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
135
|
orionis/container/providers/service_provider.py,sha256=9SHDzeuJbktRhrLq0zo2fZhRR4xOaYGOb2wKl7iBR4k,1923
|
|
136
136
|
orionis/container/resolver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
|
-
orionis/container/resolver/resolver.py,sha256=
|
|
137
|
+
orionis/container/resolver/resolver.py,sha256=8mTouPo9hhMwz1CxZcqmzZlg3vHoLCs5HEWtreZ-KWk,23523
|
|
138
138
|
orionis/container/validators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
139
139
|
orionis/container/validators/implements.py,sha256=xDXK7yhG5GGGRT9Mj1UbbVrcVTgifmjFZdaAJG4Ke8o,3110
|
|
140
140
|
orionis/container/validators/is_abstract_class.py,sha256=vJqUPn610YZS0sEkV8c_gPZskIgWmFHjg3D3MF2OTs8,1141
|
|
@@ -247,7 +247,7 @@ orionis/foundation/providers/path_resolver_provider.py,sha256=rXvaVc5sSqmDgRzWJo
|
|
|
247
247
|
orionis/foundation/providers/progress_bar_provider.py,sha256=75Jr4iEgUOUGl8Di1DioeP5_HRQlR-1lVzPmS96sWjA,737
|
|
248
248
|
orionis/foundation/providers/workers_provider.py,sha256=WWlji3C69_-Y0c42aZDbR_bmcE_qZEh2SaA_cNkCivI,702
|
|
249
249
|
orionis/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
250
|
-
orionis/metadata/framework.py,sha256=
|
|
250
|
+
orionis/metadata/framework.py,sha256=cGgByXu_dMZG3EWH8_xu-G5JsAAp7LgfUolLoHX4hDk,4960
|
|
251
251
|
orionis/metadata/package.py,sha256=tqLfBRo-w1j_GN4xvzUNFyweWYFS-qhSgAEc-AmCH1M,5452
|
|
252
252
|
orionis/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
253
253
|
orionis/services/asynchrony/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -364,7 +364,7 @@ orionis/test/contracts/printer.py,sha256=FcTii6uglVIfvsgbmG0lj3hv1RGmDWuDo0eo4Z8
|
|
|
364
364
|
orionis/test/contracts/render.py,sha256=0o6NjrKx2ewBf1JvAf8BaAtJQPb64yq1FJCeKb3iXys,967
|
|
365
365
|
orionis/test/contracts/unit_test.py,sha256=pEceAVTJGb1ohEiiMD8X3YKT6xUsRECpB0ZO9K-RUWU,8383
|
|
366
366
|
orionis/test/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
367
|
-
orionis/test/core/unit_test.py,sha256=
|
|
367
|
+
orionis/test/core/unit_test.py,sha256=FsV1x1ooyaDFhLGglEwVsV-TzQDe9DBsIP5CKe3kNLw,58030
|
|
368
368
|
orionis/test/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
369
369
|
orionis/test/entities/arguments.py,sha256=V7HT-yaXzQR5m9E8AcJST2vQ4DGd7E0ks1swkRN_v6E,1394
|
|
370
370
|
orionis/test/entities/result.py,sha256=8HRLg32bRLZX8NWgsGimJbSG8aX6n0VpbUEG57ClTGo,3023
|
|
@@ -385,10 +385,10 @@ orionis/test/records/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
|
385
385
|
orionis/test/records/logs.py,sha256=EOQcloMVdhlNl2lU9igQz8H4b-OtKtiwh2pgr_QZWOI,13186
|
|
386
386
|
orionis/test/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
387
387
|
orionis/test/view/render.py,sha256=zd7xDvVfmQ2HxZamDTzL2-z2PpyL99EaolbbM7wTah4,5014
|
|
388
|
-
orionis-0.
|
|
388
|
+
orionis-0.381.0.dist-info/licenses/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
|
|
389
389
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
390
390
|
tests/example/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
391
|
-
tests/example/test_example.py,sha256=
|
|
391
|
+
tests/example/test_example.py,sha256=jK_UvFhKmidN-8DcpGyCuyilFU0vHeKGuu2PJzNgWSM,700
|
|
392
392
|
tests/foundation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
393
393
|
tests/foundation/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
394
394
|
tests/foundation/config/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -486,8 +486,8 @@ tests/support/wrapper/test_services_wrapper_docdict.py,sha256=nTNrvJkMSPx_aopEQ9
|
|
|
486
486
|
tests/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
487
487
|
tests/testing/test_testing_result.py,sha256=fnH7hjumNSErAFGITJgq2LHxSzvPF2tdtmHL9kyAv-Y,4409
|
|
488
488
|
tests/testing/test_testing_unit.py,sha256=d3CRGo6608fMzYcZKIKapjx_af2aigqWiKSiuK9euIY,7600
|
|
489
|
-
orionis-0.
|
|
490
|
-
orionis-0.
|
|
491
|
-
orionis-0.
|
|
492
|
-
orionis-0.
|
|
493
|
-
orionis-0.
|
|
489
|
+
orionis-0.381.0.dist-info/METADATA,sha256=piUUrybU1alt7P3usyIxPG-wCVBi3XZiiKqInmwzdDQ,4772
|
|
490
|
+
orionis-0.381.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
491
|
+
orionis-0.381.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
|
|
492
|
+
orionis-0.381.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
493
|
+
orionis-0.381.0.dist-info/RECORD,,
|
tests/example/test_example.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|