Skip to content

Instantly share code, notes, and snippets.

@alexhafner
Created September 20, 2021 14:33
Show Gist options
  • Save alexhafner/a78f493f1b869df0ba112b4acb5da5e9 to your computer and use it in GitHub Desktop.
Save alexhafner/a78f493f1b869df0ba112b4acb5da5e9 to your computer and use it in GitHub Desktop.
Test succeed with UnforgivingExecutionContext
❯ tox -e py38
py38 installed: aniso8601==9.0.1,attrs==21.2.0,certifi==2021.5.30,charset-normalizer==2.0.6,coverage==5.5,coveralls==1.11.1,docopt==0.6.2,fastdiff==0.3.0,graphene @ file:///Users/alexhafner/git/forks/graphene,graphql-core==3.1.6,graphql-relay==3.1.0,idna==3.2,iso8601==0.1.16,mock==4.0.3,more-itertools==8.10.0,packaging==21.0,pluggy==0.13.1,promise==2.3,py==1.10.0,py-cpuinfo==8.0.0,pyparsing==2.4.7,pytest==5.4.3,pytest-asyncio==0.15.1,pytest-benchmark==3.4.1,pytest-cov==2.12.1,pytest-mock==2.0.0,pytz==2021.1,requests==2.26.0,six==1.16.0,snapshottest==0.6.0,termcolor==1.1.0,toml==0.10.2,urllib3==1.26.6,wasmer==1.0.0,wasmer_compiler_cranelift==1.0.0,wcwidth==0.2.5
py38 run-test-pre: PYTHONHASHSEED='1868156478'
py38 run-test: commands[0] | pytest --cov=graphene graphene examples
=========================================================================== test session starts ============================================================================
platform darwin -- Python 3.8.7, pytest-5.4.3, py-1.10.0, pluggy-0.13.1
cachedir: .tox/py38/.pytest_cache
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /Users/alexhafner/git/forks/graphene, inifile: tox.ini
plugins: cov-2.12.1, benchmark-3.4.1, asyncio-0.15.1, mock-2.0.0, snapshottest-0.6.0
collected 398 items
graphene/relay/tests/test_connection.py ........... [ 2%]
graphene/relay/tests/test_connection_async.py . [ 3%]
graphene/relay/tests/test_connection_query.py ..................... [ 8%]
graphene/relay/tests/test_global_id.py .... [ 9%]
graphene/relay/tests/test_mutation.py ......... [ 11%]
graphene/relay/tests/test_mutation_async.py .. [ 12%]
graphene/relay/tests/test_node.py .............. [ 15%]
graphene/relay/tests/test_node_custom.py ........... [ 18%]
graphene/tests/issues/test_313.py . [ 18%]
graphene/tests/issues/test_356.py . [ 18%]
graphene/tests/issues/test_425.py ......... [ 21%]
graphene/tests/issues/test_490.py . [ 21%]
graphene/tests/issues/test_720.py . [ 21%]
graphene/tests/issues/test_956.py . [ 21%]
graphene/types/tests/test_argument.py ........ [ 23%]
graphene/types/tests/test_base.py ..... [ 25%]
graphene/types/tests/test_base64.py ....... [ 26%]
graphene/types/tests/test_datetime.py ............. [ 30%]
graphene/types/tests/test_decimal.py .... [ 31%]
graphene/types/tests/test_definition.py .......... [ 33%]
graphene/types/tests/test_dynamic.py ..... [ 34%]
graphene/types/tests/test_enum.py ...................... [ 40%]
graphene/types/tests/test_field.py .............. [ 43%]
graphene/types/tests/test_generic.py .. [ 44%]
graphene/types/tests/test_inputfield.py .... [ 45%]
graphene/types/tests/test_inputobjecttype.py ......... [ 47%]
graphene/types/tests/test_interface.py ........... [ 50%]
graphene/types/tests/test_json.py .. [ 51%]
graphene/types/tests/test_mountedtype.py .. [ 51%]
graphene/types/tests/test_mutation.py ......... [ 53%]
graphene/types/tests/test_objecttype.py ............................ [ 60%]
graphene/types/tests/test_query.py .................... [ 65%]
graphene/types/tests/test_resolver.py ....... [ 67%]
graphene/types/tests/test_scalar.py .. [ 68%]
graphene/types/tests/test_scalars_serialization.py .... [ 69%]
graphene/types/tests/test_schema.py ..........FFFFFFFFF [ 73%]
graphene/types/tests/test_structures.py ................ [ 77%]
graphene/types/tests/test_subscribe_async.py .... [ 78%]
graphene/types/tests/test_type_map.py ......... [ 81%]
graphene/types/tests/test_union.py .... [ 82%]
graphene/types/tests/test_uuid.py .. [ 82%]
graphene/utils/tests/test_crunch.py ............... [ 86%]
graphene/utils/tests/test_deduplicator.py ..... [ 87%]
graphene/utils/tests/test_deprecated.py ...... [ 89%]
graphene/utils/tests/test_module_loading.py ..... [ 90%]
graphene/utils/tests/test_orderedtype.py ..... [ 91%]
graphene/utils/tests/test_resolve_only_args.py . [ 91%]
graphene/utils/tests/test_str_converters.py .. [ 92%]
graphene/utils/tests/test_trim_docstring.py . [ 92%]
graphene/validation/tests/test_depth_limit_validator.py ...... [ 94%]
graphene/validation/tests/test_disable_introspection.py .. [ 94%]
examples/starwars/tests/test_query.py ............. [ 97%]
examples/starwars_relay/tests/test_connections.py . [ 98%]
examples/starwars_relay/tests/test_mutation.py . [ 98%]
examples/starwars_relay/tests/test_objectidentification.py ...... [100%]
================================================================================= FAILURES =================================================================================
_______________________________________ TestUnforgivingExecutionContext.test_unexpected_error[unexpectedValueErrorField-ValueError] ________________________________________
self = <graphene.types.tests.test_schema.TestUnforgivingExecutionContext object at 0x10c6fe6d0>, field = 'unexpectedValueErrorField', exception = <class 'ValueError'>
schema = <graphene.types.schema.Schema object at 0x10c6ff940>
@mark.parametrize(
"field,exception",
[
("unexpectedValueErrorField", ValueError),
("unexpectedTypeErrorField", TypeError),
("unexpectedAttributeErrorField", AttributeError),
("unexpectedKeyErrorField", KeyError),
("nestedObject { unexpectedValueErrorField }", ValueError),
("nestedObject { unexpectedTypeErrorField }", TypeError),
("nestedObject { unexpectedAttributeErrorField }", AttributeError),
("nestedObject { unexpectedKeyErrorField }", KeyError),
("nestedObjectError { __typename }", TypeError),
],
)
def test_unexpected_error(self, field, exception, schema):
with raises(exception):
# no result, but the exception should be propagated
> schema.execute(
f"query {{ {field} }}",
)
E Failed: DID NOT RAISE <class 'ValueError'>
graphene/types/tests/test_schema.py:175: Failed
________________________________________ TestUnforgivingExecutionContext.test_unexpected_error[unexpectedTypeErrorField-TypeError] _________________________________________
self = <graphene.types.tests.test_schema.TestUnforgivingExecutionContext object at 0x10c71d580>, field = 'unexpectedTypeErrorField', exception = <class 'TypeError'>
schema = <graphene.types.schema.Schema object at 0x10c71dbe0>
@mark.parametrize(
"field,exception",
[
("unexpectedValueErrorField", ValueError),
("unexpectedTypeErrorField", TypeError),
("unexpectedAttributeErrorField", AttributeError),
("unexpectedKeyErrorField", KeyError),
("nestedObject { unexpectedValueErrorField }", ValueError),
("nestedObject { unexpectedTypeErrorField }", TypeError),
("nestedObject { unexpectedAttributeErrorField }", AttributeError),
("nestedObject { unexpectedKeyErrorField }", KeyError),
("nestedObjectError { __typename }", TypeError),
],
)
def test_unexpected_error(self, field, exception, schema):
with raises(exception):
# no result, but the exception should be propagated
> schema.execute(
f"query {{ {field} }}",
)
E Failed: DID NOT RAISE <class 'TypeError'>
graphene/types/tests/test_schema.py:175: Failed
___________________________________ TestUnforgivingExecutionContext.test_unexpected_error[unexpectedAttributeErrorField-AttributeError] ____________________________________
self = <graphene.types.tests.test_schema.TestUnforgivingExecutionContext object at 0x10c6bd100>, field = 'unexpectedAttributeErrorField'
exception = <class 'AttributeError'>, schema = <graphene.types.schema.Schema object at 0x10c6bd550>
@mark.parametrize(
"field,exception",
[
("unexpectedValueErrorField", ValueError),
("unexpectedTypeErrorField", TypeError),
("unexpectedAttributeErrorField", AttributeError),
("unexpectedKeyErrorField", KeyError),
("nestedObject { unexpectedValueErrorField }", ValueError),
("nestedObject { unexpectedTypeErrorField }", TypeError),
("nestedObject { unexpectedAttributeErrorField }", AttributeError),
("nestedObject { unexpectedKeyErrorField }", KeyError),
("nestedObjectError { __typename }", TypeError),
],
)
def test_unexpected_error(self, field, exception, schema):
with raises(exception):
# no result, but the exception should be propagated
> schema.execute(
f"query {{ {field} }}",
)
E Failed: DID NOT RAISE <class 'AttributeError'>
graphene/types/tests/test_schema.py:175: Failed
_________________________________________ TestUnforgivingExecutionContext.test_unexpected_error[unexpectedKeyErrorField-KeyError] __________________________________________
self = <graphene.types.tests.test_schema.TestUnforgivingExecutionContext object at 0x10c6cd130>, field = 'unexpectedKeyErrorField', exception = <class 'KeyError'>
schema = <graphene.types.schema.Schema object at 0x10c6cdd00>
@mark.parametrize(
"field,exception",
[
("unexpectedValueErrorField", ValueError),
("unexpectedTypeErrorField", TypeError),
("unexpectedAttributeErrorField", AttributeError),
("unexpectedKeyErrorField", KeyError),
("nestedObject { unexpectedValueErrorField }", ValueError),
("nestedObject { unexpectedTypeErrorField }", TypeError),
("nestedObject { unexpectedAttributeErrorField }", AttributeError),
("nestedObject { unexpectedKeyErrorField }", KeyError),
("nestedObjectError { __typename }", TypeError),
],
)
def test_unexpected_error(self, field, exception, schema):
with raises(exception):
# no result, but the exception should be propagated
> schema.execute(
f"query {{ {field} }}",
)
E Failed: DID NOT RAISE <class 'KeyError'>
graphene/types/tests/test_schema.py:175: Failed
_______________________________ TestUnforgivingExecutionContext.test_unexpected_error[nestedObject { unexpectedValueErrorField }-ValueError] _______________________________
self = <graphene.types.tests.test_schema.TestUnforgivingExecutionContext object at 0x10c6c9580>, field = 'nestedObject { unexpectedValueErrorField }'
exception = <class 'ValueError'>, schema = <graphene.types.schema.Schema object at 0x10be244c0>
@mark.parametrize(
"field,exception",
[
("unexpectedValueErrorField", ValueError),
("unexpectedTypeErrorField", TypeError),
("unexpectedAttributeErrorField", AttributeError),
("unexpectedKeyErrorField", KeyError),
("nestedObject { unexpectedValueErrorField }", ValueError),
("nestedObject { unexpectedTypeErrorField }", TypeError),
("nestedObject { unexpectedAttributeErrorField }", AttributeError),
("nestedObject { unexpectedKeyErrorField }", KeyError),
("nestedObjectError { __typename }", TypeError),
],
)
def test_unexpected_error(self, field, exception, schema):
with raises(exception):
# no result, but the exception should be propagated
> schema.execute(
f"query {{ {field} }}",
)
E Failed: DID NOT RAISE <class 'ValueError'>
graphene/types/tests/test_schema.py:175: Failed
________________________________ TestUnforgivingExecutionContext.test_unexpected_error[nestedObject { unexpectedTypeErrorField }-TypeError] ________________________________
self = <graphene.types.tests.test_schema.TestUnforgivingExecutionContext object at 0x10c6bdb80>, field = 'nestedObject { unexpectedTypeErrorField }'
exception = <class 'TypeError'>, schema = <graphene.types.schema.Schema object at 0x10c6bda60>
@mark.parametrize(
"field,exception",
[
("unexpectedValueErrorField", ValueError),
("unexpectedTypeErrorField", TypeError),
("unexpectedAttributeErrorField", AttributeError),
("unexpectedKeyErrorField", KeyError),
("nestedObject { unexpectedValueErrorField }", ValueError),
("nestedObject { unexpectedTypeErrorField }", TypeError),
("nestedObject { unexpectedAttributeErrorField }", AttributeError),
("nestedObject { unexpectedKeyErrorField }", KeyError),
("nestedObjectError { __typename }", TypeError),
],
)
def test_unexpected_error(self, field, exception, schema):
with raises(exception):
# no result, but the exception should be propagated
> schema.execute(
f"query {{ {field} }}",
)
E Failed: DID NOT RAISE <class 'TypeError'>
graphene/types/tests/test_schema.py:175: Failed
___________________________ TestUnforgivingExecutionContext.test_unexpected_error[nestedObject { unexpectedAttributeErrorField }-AttributeError] ___________________________
self = <graphene.types.tests.test_schema.TestUnforgivingExecutionContext object at 0x10c70ed00>, field = 'nestedObject { unexpectedAttributeErrorField }'
exception = <class 'AttributeError'>, schema = <graphene.types.schema.Schema object at 0x10c70ec70>
@mark.parametrize(
"field,exception",
[
("unexpectedValueErrorField", ValueError),
("unexpectedTypeErrorField", TypeError),
("unexpectedAttributeErrorField", AttributeError),
("unexpectedKeyErrorField", KeyError),
("nestedObject { unexpectedValueErrorField }", ValueError),
("nestedObject { unexpectedTypeErrorField }", TypeError),
("nestedObject { unexpectedAttributeErrorField }", AttributeError),
("nestedObject { unexpectedKeyErrorField }", KeyError),
("nestedObjectError { __typename }", TypeError),
],
)
def test_unexpected_error(self, field, exception, schema):
with raises(exception):
# no result, but the exception should be propagated
> schema.execute(
f"query {{ {field} }}",
)
E Failed: DID NOT RAISE <class 'AttributeError'>
graphene/types/tests/test_schema.py:175: Failed
_________________________________ TestUnforgivingExecutionContext.test_unexpected_error[nestedObject { unexpectedKeyErrorField }-KeyError] _________________________________
self = <graphene.types.tests.test_schema.TestUnforgivingExecutionContext object at 0x10c6f7580>, field = 'nestedObject { unexpectedKeyErrorField }'
exception = <class 'KeyError'>, schema = <graphene.types.schema.Schema object at 0x10c71d160>
@mark.parametrize(
"field,exception",
[
("unexpectedValueErrorField", ValueError),
("unexpectedTypeErrorField", TypeError),
("unexpectedAttributeErrorField", AttributeError),
("unexpectedKeyErrorField", KeyError),
("nestedObject { unexpectedValueErrorField }", ValueError),
("nestedObject { unexpectedTypeErrorField }", TypeError),
("nestedObject { unexpectedAttributeErrorField }", AttributeError),
("nestedObject { unexpectedKeyErrorField }", KeyError),
("nestedObjectError { __typename }", TypeError),
],
)
def test_unexpected_error(self, field, exception, schema):
with raises(exception):
# no result, but the exception should be propagated
> schema.execute(
f"query {{ {field} }}",
)
E Failed: DID NOT RAISE <class 'KeyError'>
graphene/types/tests/test_schema.py:175: Failed
____________________________________ TestUnforgivingExecutionContext.test_unexpected_error[nestedObjectError { __typename }-TypeError] _____________________________________
self = <graphene.types.tests.test_schema.TestUnforgivingExecutionContext object at 0x10c6ff910>, field = 'nestedObjectError { __typename }', exception = <class 'TypeError'>
schema = <graphene.types.schema.Schema object at 0x10c71a430>
@mark.parametrize(
"field,exception",
[
("unexpectedValueErrorField", ValueError),
("unexpectedTypeErrorField", TypeError),
("unexpectedAttributeErrorField", AttributeError),
("unexpectedKeyErrorField", KeyError),
("nestedObject { unexpectedValueErrorField }", ValueError),
("nestedObject { unexpectedTypeErrorField }", TypeError),
("nestedObject { unexpectedAttributeErrorField }", AttributeError),
("nestedObject { unexpectedKeyErrorField }", KeyError),
("nestedObjectError { __typename }", TypeError),
],
)
def test_unexpected_error(self, field, exception, schema):
with raises(exception):
# no result, but the exception should be propagated
> schema.execute(
f"query {{ {field} }}",
)
E Failed: DID NOT RAISE <class 'TypeError'>
graphene/types/tests/test_schema.py:175: Failed
---------- coverage: platform darwin, python 3.8.7-final-0 -----------
Name Stmts Miss Cover
------------------------------------------------------------------
graphene/__init__.py 8 0 100%
graphene/relay/__init__.py 4 0 100%
graphene/relay/connection.py 86 0 100%
graphene/relay/mutation.py 37 0 100%
graphene/relay/node.py 73 1 99%
graphene/test/__init__.py 28 5 82%
graphene/types/__init__.py 21 0 100%
graphene/types/argument.py 43 1 98%
graphene/types/base.py 32 1 97%
graphene/types/base64.py 28 4 86%
graphene/types/context.py 4 0 100%
graphene/types/datetime.py 71 8 89%
graphene/types/decimal.py 21 2 90%
graphene/types/definitions.py 28 0 100%
graphene/types/dynamic.py 13 1 92%
graphene/types/enum.py 48 0 100%
graphene/types/field.py 50 2 96%
graphene/types/generic.py 25 0 100%
graphene/types/inputfield.py 17 0 100%
graphene/types/inputobjecttype.py 37 1 97%
graphene/types/interface.py 27 2 93%
graphene/types/json.py 15 0 100%
graphene/types/mountedtype.py 7 0 100%
graphene/types/mutation.py 55 4 93%
graphene/types/objecttype.py 47 3 94%
graphene/types/resolver.py 15 0 100%
graphene/types/scalars.py 95 10 89%
graphene/types/schema.py 233 12 95%
graphene/types/structures.py 28 0 100%
graphene/types/union.py 23 2 91%
graphene/types/unmountedtype.py 21 2 90%
graphene/types/utils.py 32 4 88%
graphene/types/uuid.py 18 1 94%
graphene/utils/__init__.py 0 0 100%
graphene/utils/crunch.py 23 0 100%
graphene/utils/deduplicator.py 22 0 100%
graphene/utils/deprecated.py 29 0 100%
graphene/utils/get_unbound_function.py 4 1 75%
graphene/utils/is_introspection_key.py 2 0 100%
graphene/utils/module_loading.py 25 0 100%
graphene/utils/orderedtype.py 27 0 100%
graphene/utils/props.py 7 0 100%
graphene/utils/resolve_only_args.py 8 0 100%
graphene/utils/str_converters.py 7 0 100%
graphene/utils/subclass_with_meta.py 30 1 97%
graphene/utils/thenables.py 9 0 100%
graphene/utils/trim_docstring.py 3 0 100%
graphene/validation/__init__.py 3 0 100%
graphene/validation/depth_limit.py 66 2 97%
graphene/validation/disable_introspection.py 9 0 100%
------------------------------------------------------------------
TOTAL 1564 70 96%
=========================================================================== SnapshotTest summary ===========================================================================
21 snapshots passed.
-------------------------------------------------------------------------------------------------------------------------------------------- benchmark: 6 tests -------------------------------------------------------------------------------------------------------------------------------------------
Name (time in ns) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_objecttype_container_benchmark 593.0000 (1.0) 120,595.0000 (1.0) 728.8221 (1.0) 1,070.1422 (1.0) 675.0000 (1.0) 30.0000 (1.0) 599;5496 1,372,076.8708 (1.0) 195428 1
test_big_list_of_containers_query_benchmark 8,296,902.0000 (>1000.0) 22,522,965.0000 (186.77) 8,968,275.1429 (>1000.0) 1,608,947.5629 (>1000.0) 8,608,413.5000 (>1000.0) 348,023.5000 (>1000.0) 3;12 111.5042 (0.00) 84 1
test_big_list_query_benchmark 16,857,095.0000 (>1000.0) 20,237,516.0000 (167.81) 18,052,191.7600 (>1000.0) 852,281.7923 (796.42) 17,838,216.5000 (>1000.0) 1,246,279.0000 (>1000.0) 18;0 55.3949 (0.00) 50 1
test_big_list_of_containers_multiple_fields_custom_resolvers_query_benchmark 20,265,683.0000 (>1000.0) 24,200,799.0000 (200.68) 21,336,389.8049 (>1000.0) 936,517.5135 (875.13) 21,076,940.0000 (>1000.0) 509,361.0000 (>1000.0) 8;6 46.8683 (0.00) 41 1
test_big_list_of_containers_multiple_fields_query_benchmark 21,374,555.0000 (>1000.0) 27,348,270.0000 (226.78) 22,437,994.3333 (>1000.0) 1,067,607.9038 (997.63) 22,114,796.5000 (>1000.0) 950,413.0000 (>1000.0) 5;2 44.5673 (0.00) 42 1
test_big_list_query_compiled_query_benchmark 221,468,984.0000 (>1000.0) 238,917,537.0000 (>1000.0) 232,387,981.8000 (>1000.0) 6,996,673.1568 (>1000.0) 232,935,750.0000 (>1000.0) 9,798,976.7500 (>1000.0) 1;0 4.3031 (0.00) 5 1
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Legend:
Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile.
OPS: Operations Per Second, computed as 1 / Mean
========================================================================= short test summary info ==========================================================================
FAILED graphene/types/tests/test_schema.py::TestUnforgivingExecutionContext::test_unexpected_error[unexpectedValueErrorField-ValueError] - Failed: DID NOT RAISE <class '...
FAILED graphene/types/tests/test_schema.py::TestUnforgivingExecutionContext::test_unexpected_error[unexpectedTypeErrorField-TypeError] - Failed: DID NOT RAISE <class 'Ty...
FAILED graphene/types/tests/test_schema.py::TestUnforgivingExecutionContext::test_unexpected_error[unexpectedAttributeErrorField-AttributeError] - Failed: DID NOT RAISE ...
FAILED graphene/types/tests/test_schema.py::TestUnforgivingExecutionContext::test_unexpected_error[unexpectedKeyErrorField-KeyError] - Failed: DID NOT RAISE <class 'KeyE...
FAILED graphene/types/tests/test_schema.py::TestUnforgivingExecutionContext::test_unexpected_error[nestedObject { unexpectedValueErrorField }-ValueError] - Failed: DID N...
FAILED graphene/types/tests/test_schema.py::TestUnforgivingExecutionContext::test_unexpected_error[nestedObject { unexpectedTypeErrorField }-TypeError] - Failed: DID NOT...
FAILED graphene/types/tests/test_schema.py::TestUnforgivingExecutionContext::test_unexpected_error[nestedObject { unexpectedAttributeErrorField }-AttributeError] - Faile...
FAILED graphene/types/tests/test_schema.py::TestUnforgivingExecutionContext::test_unexpected_error[nestedObject { unexpectedKeyErrorField }-KeyError] - Failed: DID NOT R...
FAILED graphene/types/tests/test_schema.py::TestUnforgivingExecutionContext::test_unexpected_error[nestedObjectError { __typename }-TypeError] - Failed: DID NOT RAISE <c...
====================================================================== 9 failed, 389 passed in 10.49s ======================================================================
ERROR: InvocationError for command /Users/alexhafner/git/forks/graphene/.tox/py38/bin/pytest --cov=graphene graphene examples (exited with code 1)
_________________________________________________________________________________ summary __________________________________________________________________________________
ERROR: py38: commands failed
❯ tox -e py38
py38 installed: aniso8601==9.0.1,attrs==21.2.0,certifi==2021.5.30,charset-normalizer==2.0.6,coverage==5.5,coveralls==1.11.1,docopt==0.6.2,fastdiff==0.3.0,graphene @ file:///Users/alexhafner/git/forks/graphene,graphql-core==3.1.6,graphql-relay==3.1.0,idna==3.2,iso8601==0.1.16,mock==4.0.3,more-itertools==8.10.0,packaging==21.0,pluggy==0.13.1,promise==2.3,py==1.10.0,py-cpuinfo==8.0.0,pyparsing==2.4.7,pytest==5.4.3,pytest-asyncio==0.15.1,pytest-benchmark==3.4.1,pytest-cov==2.12.1,pytest-mock==2.0.0,pytz==2021.1,requests==2.26.0,six==1.16.0,snapshottest==0.6.0,termcolor==1.1.0,toml==0.10.2,urllib3==1.26.6,wasmer==1.0.0,wasmer_compiler_cranelift==1.0.0,wcwidth==0.2.5
py38 run-test-pre: PYTHONHASHSEED='360958263'
py38 run-test: commands[0] | pytest --cov=graphene graphene examples
=========================================================================== test session starts ============================================================================
platform darwin -- Python 3.8.7, pytest-5.4.3, py-1.10.0, pluggy-0.13.1
cachedir: .tox/py38/.pytest_cache
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /Users/alexhafner/git/forks/graphene, inifile: tox.ini
plugins: cov-2.12.1, benchmark-3.4.1, asyncio-0.15.1, mock-2.0.0, snapshottest-0.6.0
collected 398 items
graphene/relay/tests/test_connection.py ........... [ 2%]
graphene/relay/tests/test_connection_async.py . [ 3%]
graphene/relay/tests/test_connection_query.py ..................... [ 8%]
graphene/relay/tests/test_global_id.py .... [ 9%]
graphene/relay/tests/test_mutation.py ......... [ 11%]
graphene/relay/tests/test_mutation_async.py .. [ 12%]
graphene/relay/tests/test_node.py .............. [ 15%]
graphene/relay/tests/test_node_custom.py ........... [ 18%]
graphene/tests/issues/test_313.py . [ 18%]
graphene/tests/issues/test_356.py . [ 18%]
graphene/tests/issues/test_425.py ......... [ 21%]
graphene/tests/issues/test_490.py . [ 21%]
graphene/tests/issues/test_720.py . [ 21%]
graphene/tests/issues/test_956.py . [ 21%]
graphene/types/tests/test_argument.py ........ [ 23%]
graphene/types/tests/test_base.py ..... [ 25%]
graphene/types/tests/test_base64.py ....... [ 26%]
graphene/types/tests/test_datetime.py ............. [ 30%]
graphene/types/tests/test_decimal.py .... [ 31%]
graphene/types/tests/test_definition.py .......... [ 33%]
graphene/types/tests/test_dynamic.py ..... [ 34%]
graphene/types/tests/test_enum.py ...................... [ 40%]
graphene/types/tests/test_field.py .............. [ 43%]
graphene/types/tests/test_generic.py .. [ 44%]
graphene/types/tests/test_inputfield.py .... [ 45%]
graphene/types/tests/test_inputobjecttype.py ......... [ 47%]
graphene/types/tests/test_interface.py ........... [ 50%]
graphene/types/tests/test_json.py .. [ 51%]
graphene/types/tests/test_mountedtype.py .. [ 51%]
graphene/types/tests/test_mutation.py ......... [ 53%]
graphene/types/tests/test_objecttype.py ............................ [ 60%]
graphene/types/tests/test_query.py .................... [ 65%]
graphene/types/tests/test_resolver.py ....... [ 67%]
graphene/types/tests/test_scalar.py .. [ 68%]
graphene/types/tests/test_scalars_serialization.py .... [ 69%]
graphene/types/tests/test_schema.py ................... [ 73%]
graphene/types/tests/test_structures.py ................ [ 77%]
graphene/types/tests/test_subscribe_async.py .... [ 78%]
graphene/types/tests/test_type_map.py ......... [ 81%]
graphene/types/tests/test_union.py .... [ 82%]
graphene/types/tests/test_uuid.py .. [ 82%]
graphene/utils/tests/test_crunch.py ............... [ 86%]
graphene/utils/tests/test_deduplicator.py ..... [ 87%]
graphene/utils/tests/test_deprecated.py ...... [ 89%]
graphene/utils/tests/test_module_loading.py ..... [ 90%]
graphene/utils/tests/test_orderedtype.py ..... [ 91%]
graphene/utils/tests/test_resolve_only_args.py . [ 91%]
graphene/utils/tests/test_str_converters.py .. [ 92%]
graphene/utils/tests/test_trim_docstring.py . [ 92%]
graphene/validation/tests/test_depth_limit_validator.py ...... [ 94%]
graphene/validation/tests/test_disable_introspection.py .. [ 94%]
examples/starwars/tests/test_query.py ............. [ 97%]
examples/starwars_relay/tests/test_connections.py . [ 98%]
examples/starwars_relay/tests/test_mutation.py . [ 98%]
examples/starwars_relay/tests/test_objectidentification.py ...... [100%]
---------- coverage: platform darwin, python 3.8.7-final-0 -----------
Name Stmts Miss Cover
------------------------------------------------------------------
graphene/__init__.py 8 0 100%
graphene/relay/__init__.py 4 0 100%
graphene/relay/connection.py 86 0 100%
graphene/relay/mutation.py 37 0 100%
graphene/relay/node.py 73 1 99%
graphene/test/__init__.py 28 5 82%
graphene/types/__init__.py 21 0 100%
graphene/types/argument.py 43 1 98%
graphene/types/base.py 32 1 97%
graphene/types/base64.py 28 4 86%
graphene/types/context.py 4 0 100%
graphene/types/datetime.py 71 8 89%
graphene/types/decimal.py 21 2 90%
graphene/types/definitions.py 28 0 100%
graphene/types/dynamic.py 13 1 92%
graphene/types/enum.py 48 0 100%
graphene/types/field.py 50 2 96%
graphene/types/generic.py 25 0 100%
graphene/types/inputfield.py 17 0 100%
graphene/types/inputobjecttype.py 37 1 97%
graphene/types/interface.py 27 2 93%
graphene/types/json.py 15 0 100%
graphene/types/mountedtype.py 7 0 100%
graphene/types/mutation.py 55 4 93%
graphene/types/objecttype.py 47 3 94%
graphene/types/resolver.py 15 0 100%
graphene/types/scalars.py 95 10 89%
graphene/types/schema.py 238 12 95%
graphene/types/structures.py 28 0 100%
graphene/types/union.py 23 2 91%
graphene/types/unmountedtype.py 21 2 90%
graphene/types/utils.py 32 4 88%
graphene/types/uuid.py 18 1 94%
graphene/utils/__init__.py 0 0 100%
graphene/utils/crunch.py 23 0 100%
graphene/utils/deduplicator.py 22 0 100%
graphene/utils/deprecated.py 29 0 100%
graphene/utils/get_unbound_function.py 4 1 75%
graphene/utils/is_introspection_key.py 2 0 100%
graphene/utils/module_loading.py 25 0 100%
graphene/utils/orderedtype.py 27 0 100%
graphene/utils/props.py 7 0 100%
graphene/utils/resolve_only_args.py 8 0 100%
graphene/utils/str_converters.py 7 0 100%
graphene/utils/subclass_with_meta.py 30 1 97%
graphene/utils/thenables.py 9 0 100%
graphene/utils/trim_docstring.py 3 0 100%
graphene/validation/__init__.py 3 0 100%
graphene/validation/depth_limit.py 66 2 97%
graphene/validation/disable_introspection.py 9 0 100%
------------------------------------------------------------------
TOTAL 1569 70 96%
=========================================================================== SnapshotTest summary ===========================================================================
21 snapshots passed.
-------------------------------------------------------------------------------------------------------------------------------------------- benchmark: 6 tests --------------------------------------------------------------------------------------------------------------------------------------------
Name (time in ns) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_objecttype_container_benchmark 582.0000 (1.0) 49,317.0000 (1.0) 721.0525 (1.0) 844.5771 (1.0) 681.0000 (1.0) 38.0000 (1.0) 449;3776 1,386,861.6569 (1.0) 157283 1
test_big_list_of_containers_query_benchmark 8,502,719.0000 (>1000.0) 21,692,811.0000 (439.86) 9,414,916.0423 (>1000.0) 1,608,662.1043 (>1000.0) 9,070,764.0000 (>1000.0) 800,740.5000 (>1000.0) 2;3 106.2144 (0.00) 71 1
test_big_list_query_benchmark 16,799,259.0000 (>1000.0) 25,831,611.0000 (523.79) 17,876,016.4000 (>1000.0) 1,531,682.8638 (>1000.0) 17,346,533.0000 (>1000.0) 899,109.5000 (>1000.0) 3;3 55.9409 (0.00) 45 1
test_big_list_of_containers_multiple_fields_custom_resolvers_query_benchmark 20,291,669.0000 (>1000.0) 24,411,707.0000 (495.00) 21,329,081.2105 (>1000.0) 818,311.1414 (968.90) 21,125,992.0000 (>1000.0) 521,018.0000 (>1000.0) 5;4 46.8843 (0.00) 38 1
test_big_list_of_containers_multiple_fields_query_benchmark 22,317,762.0000 (>1000.0) 26,177,936.0000 (530.81) 23,235,914.4146 (>1000.0) 670,127.8400 (793.45) 23,150,940.0000 (>1000.0) 366,230.7500 (>1000.0) 6;4 43.0368 (0.00) 41 1
test_big_list_query_compiled_query_benchmark 217,755,587.0000 (>1000.0) 240,552,427.0000 (>1000.0) 228,712,185.0000 (>1000.0) 8,415,268.9368 (>1000.0) 227,176,811.0000 (>1000.0) 10,496,735.0000 (>1000.0) 2;0 4.3723 (0.00) 5 1
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Legend:
Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile.
OPS: Operations Per Second, computed as 1 / Mean
=========================================================================== 398 passed in 9.95s ============================================================================
_________________________________________________________________________________ summary __________________________________________________________________________________
py38: commands succeeded
congratulations :)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment