Previously, installing graphene and trying to do `from graphene.test import Client`
as recommended in the docs caused an `ImportError`, as the 'promise' library
is imported but only listed as a requirement in the 'test' section of the setup.py
file.
* Vendor DataLoader from aiodataloader and also move get_event_loop behavior from `__init__` to a property which only gets resolved when actually needed (this will solve PyTest-related to early get_event_loop() issues)
* Added DataLoader's specific tests
* plug `loop` parameter into `self._loop`, so that we still have the ability to pass in a custom event loop, if needed.
Co-authored-by: Erik Wrede <erikwrede2@gmail.com>
GraphQL-core released `3.2.0rc1` with some breaking changes and
1. We should be getting RC releases in our dependencies
2. It has breaking changes, so we shouldn't get 3.2.0 unless someone fixes it explicitly
* Improve enum compatibility by supporting return enum as well as values and names
* Handle invalid enum values
* Rough implementation of compat middleware
* Move enum middleware into compat module
* Fix tests
* Tweak enum examples
* Add some tests for the middleware
* Clean up tests
* Add missing imports
* Remove enum compat middleware
* Use custom dedent function and pin graphql-core to >3.1.2
* The default_value of InputField should be INVALID
Since GraphQL 3.0 there is a distinction between None and INVALID (no value).
The tests captured the bug and are updated.
* Update minimum graphql-core version
* Use Undefined instead of INVALID
Co-authored-by: Jonathan Kim <jkimbo@gmail.com>
* Fix tests
* Add extra folders to make test command
* Update snapshots
* Add python 3.8 to test matrix
* Add black command to makefile and black dependency to setup.py
* Add lint command
* Run format
* Remove 3.8 from test matrix
* Add Python 3.8 to test matrix
* Update setup.py
* v3.0 - remove Python 2.x from build (#983)
* Change travis to only compile for p3.6+
* Changed tox to only run Python 3.6+
* Changed library classifiers to reflect support in Python 3.6+
* Changed version to 3.0.0 development
In [15]: get_version((3, 0, 0, "alpha", 0))
Out[15]: '3.0.dev20190601212304'
* Reorganize Tests (#985)
We no longer need a dedicated folder for Python3.6+ tests
We no longer need to check six.PY3 in tests
* Upgrade black to 19.3b0 (#987)
* Remove six dependency (#986)
* No one is using func_name
* Remove six simple usages
* Remove six requirement
* Remove `six.with_metaclass` calls
* pytest-asyncio should be a regular dependency now with Py3 move
* Change dependency to graphql-core-next (#988)
* Changed dependencies to core-next
* Converted Scalars
* ResolveInfo name change
* Ignore .venv
* Make Schema compatible with GraphQL-core-next
* Ignore more venv names and mypy and pytest caches
* Remove print statements for debugging in schema test
* core-next now provides out_type and out_name
* Adapt date and time scalar types to core-next
* Ignore the non-standard result.invalid flag
* Results are named tuples in core-next (immutable)
* Enum values are returned as dict in core-next
* Fix mutation tests with promises
* Make all 345 tests pass with graphql-core-next
* Remove the compat module which was only needed for older Py version
* Remove object as base class (not needed in Py 3)
* We can assume that dicts are ordered in Py 3.6+
* Make use of the fact that dicts are iterable
* Use consistent style of importing from pytest
* Restore compatibility with graphql-relay-py v3
Add adpaters for the PageInfo and Connection args.
* Avoid various deprecation warnings
* Use graphql-core 3 instead of graphql-core-next
* Update dependencies, reformat changes with black
* Update graphene/relay/connection.py
Co-Authored-By: Jonathan Kim <jkimbo@gmail.com>
* Run black on setup.py
* Remove trailing whitespace
I have a project still in 1.2.0 thats has been broken in my last release since it used `'graphql-core>=1.0.1'` in the `install_requires`. Since `graphql-core` has released version 2.0 with breaking changes and there was no instruction to maintain version 1, it was included as a dependency. This prevents this situation for the future.