Commit Graph

447 Commits

Author SHA1 Message Date
Jonathan Kim
fea9b5b194 Extend DjangoListField to use model queryset if none defined (#732)
* Fix model property

* Only allow DjangoObjectTypes to DjangoListField

* Resolve model queryset by default

* Add some more tests to check behaviour
2019-09-17 09:14:18 -07:00
Talley Lambert
254e59c36f Adds variables arg to GraphQLTestCase.query (#699)
* add variables arg in GraphQLTestCase.query

* update GraphQLTestCase.query docstring and remove type check
2019-09-07 11:49:29 -07:00
Jonathan Kim
87aebdb630
v2.5.0 (#739) 2019-08-10 11:55:42 +01:00
Tomasz Kontusz
11605dcdc6 Make DjangoDebugContext wait for nested fields (#591)
* Make DjangoDebugContext wait for nested fields

This commit makes DjangoDebugContext wait for all field's promises,
even for fields that only started their resolvers after __debug was
resolved.

Fixes #293.

* Run format
2019-08-07 08:09:17 +01:00
Kike Isidoro
6e137da469 Check for filters defined on base filterset classes (#730)
* Check for filters defined on base filterset classes

* Make python2.7 compatible and run black

* Add filter method and use filter in test

* Check article headline and reformat
2019-08-07 08:04:04 +01:00
Alexandre Kirszenberg
59f4f134b5 Set converted Django connections to required (#610) 2019-08-01 09:31:18 -07:00
Jason Kraus
b1a9293016 fix choices enum: if field can be blank then it isnt required (#714) 2019-08-01 09:07:52 +01:00
Jonathan Kim
de98fb5812
v2.4.0 (#706) 2019-07-12 17:38:26 +01:00
Semyon Pupkov
224725039b Asserting status code before decoding json in assertResponseNoEr… (#708) 2019-07-11 20:32:07 +01:00
Jonathan Kim
b7e4937775
Alias only_fields as fields and exclude_fields as exclude (#691)
* Create new fields and exclude options that are aliased to exclude_fields and only_fields

* Update docs

* Add some checking around fields and exclude definitions

* Add all fields option

* Update docs to include `__all__` option

* Actual order of fields is not stable

* Update docs/queries.rst

Co-Authored-By: Semyon Pupkov <semen.pupkov@gmail.com>

* Fix example code

* Format code

* Start raising PendingDeprecationWarnings for using only_fields and exclude_fields

* Update tests
2019-07-09 14:03:11 +01:00
Pablo Burgos
a2103c19f4 Fix error of multiple inputs with the same type. When using same serializer. (#530) 2019-07-09 09:14:04 +01:00
Jonathan Kim
0988e0798a
Adds documentation to CAMELCASE_ERRORS setting (#689)
* Rename setting and add documentation

* Add examples

* Use `cls`
2019-07-08 22:22:08 +01:00
Jonathan Kim
aa30750d39 Bugfix: Correct filter types for DjangoFilterConnectionFields (#682)
* Get form field from Django model before defaulting to django-filter

* Add test

* Cleanup some flake8 warnings and pytest warnings

* Run isort and add black compatible config
2019-07-07 12:11:27 -07:00
Jonathan Kim
9aabe2cbe6
Remove duplicate ErrorType (#701) 2019-07-07 20:06:01 +01:00
Jonathan Kim
40ae7e53ec
Fix manager check in DjangoConnectionField (#693)
* Fix default manager check

* Add test
2019-07-02 19:37:50 +01:00
Jonathan Kim
54cc6a4b13
Enforce NonNull for returned related Sets and their content (#690)
* Enforce NonNull for returned related Sets and their content. https://github.com/graphql-python/graphene-django/issues/448

* Run format.

* Remove duplicate assertion
2019-06-25 16:30:30 +01:00
Konstantin Alekseev
e2e496f505 Apply camel case converter to field names in DRF errors (#514)
* Apply camel case converter to field names in DRF errors

* Implement recursive error camelize, add setting.
2019-06-25 09:40:29 +01:00
Jonathan Kim
692540cc78
Update flake8 (#688)
* Include setup.py in black formatting

* Add new flake8 plugins and update errors to look for

* Fix duplicate test name

* Don't use mutable data structure

* Install all dev dependencies for flake8 and black tox envs
2019-06-24 18:55:44 +01:00
Jonathan Kim
612ba5a4ea
Add convert_choices_to_enum option on DjangoObjectType Meta class (#674)
* Add convert_choices_to_enum meta option

* Add tests

* Run black

* Update documentation

* Add link to Django choices documentation

* Add test and documentation note

That setting to an empty list is the same as setting the value as False

* Fix Django warning in tests

* rst is not markdown
2019-06-17 18:48:29 +01:00
Jonathan Kim
775d2e3523
Update travis and tox (#667)
* Update travis and tox

* Use xenial distribution

* Don't install coveralls twice

* Add black and flake8 tox commands

* Remove Python 3.5 test for Django master

* Fix indent

* Ignore migrations

* Remove black for now

* Run black formatting (#668)

* Run black format

* Update makefile

* Add black to travis build
2019-06-10 20:54:30 -07:00
Alexandre Kirszenberg
96934c4614 Correctly propagate help_text as description for many-to-* relations (#579)
* Correctly propagate help_text as description for many-to-* relations

* Trigger build
2019-06-09 17:19:05 -07:00
Emil Goldsmith Olesen
fcc491fffb Add watch option to graphql_schema (#656)
* Add watch option to graphql_schema

* add documentation for grapql_schema --watch
2019-06-09 17:06:50 -07:00
Mel van Londen
a9a8d672e9
Merge pull request #600 from sierreis/filterset-class
Add support for filterset_class meta parameter
2019-06-09 16:48:46 -07:00
Mel van Londen
b271b259bd
Merge pull request #603 from abettke/fix/enhanced-proxy-model-support
Adds enhanced support for proxy models.
2019-06-09 16:47:10 -07:00
Emil Goldsmith Olesen
3cde872e28 Stop enforcing csrf checks in GraphQLTestCase (#658) 2019-06-09 16:30:48 -07:00
kamilkijak
c90c27f364 Add support for write_only fields in SerializerMutation (#555) 2019-06-09 16:25:34 -07:00
mvanlonden
94602c77c6 add reverse relation one to one query test 2019-06-09 12:41:04 -07:00
José Roberto Meza Cabrera
ce6e6dd6e1 Fixes O2O relations 2019-06-09 14:15:46 -05:00
José Roberto Meza Cabrera
67b21cb36f Revert "Drop old Django compatibility code"
This reverts commit 6acd917cf7.
2019-06-09 14:08:31 -05:00
mvanlonden
ddf8d24bf5 increment version to match release tag 2019-05-31 14:38:34 -07:00
Paul Hallett
b0cba398a1
Merge pull request #647 from dulmandakh/react-16.8.6
bump react to 16.8.6
2019-05-21 14:18:45 +01:00
Dulmandakh
7690c2c002 bump react to 16.8.6 2019-05-20 19:41:25 +08:00
Dulmandakh
49aedf171a bump graphiql to 0.13.0, and rename __debug to _debug due to __ limitations 2019-05-20 17:48:28 +08:00
zorig
ba64bceab0 graphiql version upgrade 2019-05-15 17:22:29 +08:00
Paul Hallett
e26a9f2a44
Merge pull request #631 from graphql-python/fix-628
Fix importing error for GraphQLTestCase
2019-05-13 18:12:22 +01:00
Mel van Londen
865c9535b9
Bugfix: FormMutation was always causing boolean fields to be required (#613)
Bugfix: FormMutation was always causing boolean fields to be required
2019-05-09 11:47:47 -07:00
Paul Hallett
2bf7e7f66d
Fix importing error for GraphQLTestCase 2019-05-08 22:45:28 +01:00
Paul Hallett
0d178b38fb
Merge pull request #609 from acu/fix-connection-field-required
Fix passing required=True to DjangoConnectionField
2019-05-06 12:01:12 +01:00
Paul Hallett
e6ad5887ca
Introduce Black formatting, additional tests 2019-05-02 17:46:35 +01:00
Alexandre Kirszenberg
b49d315a39 4 spaces 2019-05-01 15:49:54 +02:00
Mel van Londen
fb8a129752
Merge pull request #608 from GitRon/feature/base-test-class
Added test class for django api unittests and documentation
2019-04-27 09:16:23 -07:00
David Sanders
6acd917cf7
Drop old Django compatibility code 2019-04-15 05:53:30 -07:00
Ronny Vedrilla
29b8ea8398 Bugfix: FormMutation was always causing boolean fields to be required 2019-04-05 14:27:53 +02:00
Andrew Bettke
a7ee042e9d Merge branch 'master' of https://github.com/graphql-python/graphene-django into fix/enhanced-proxy-model-support 2019-04-01 22:15:16 +13:00
Patrick Arminio
923d8282c7 Fix duplicated ErrorType declaration (#539)
* Add failing test case

* Fix duplicated ErrorType declaration
2019-03-31 12:01:43 +01:00
Jason Kraus
0a5020bee1 Get queryset (#528)
* first attempt at adding get_queryset

* add queryset_resolver to DjangoConnectionField and fix test failures

* cleanup get_queryset API to match proposal as close as possible

* pep8 fix: W293

* document get_queryset usage

* add test for when get_queryset is defined on DjangoObjectType
2019-03-31 12:01:17 +01:00
Gary Donovan
fcc3de2a90 Allow graphql schema export to use a canonical representation (#439)
When we use the `graphql_schema` management command, the output can vary from run to run depending on arbitrary factors (because there is no guarantee made about the order used to output JSON dictionary keys). This makes it difficult to compare two schema's at different points in time.

We address this by including a new `canonical` flag to the command, which uses standard `json.dump` funcitonality to sort dictionary keys and force pretty-printed output.
2019-03-31 11:30:29 +01:00
Alexandre Kirszenberg
8beadc759f Correctly propagate NonNull to inner connection type 2019-03-30 19:43:11 +01:00
Ronny Vedrilla
3c11a980fe Python 2.7 syntax compat 2019-03-29 12:53:18 +01:00
Ronny Vedrilla
b491878c27 * Added test class for django api unittests and documentation how to use it 2019-03-29 11:51:40 +01:00
Andrew Bettke
959e98eeb0 Refactor to use formal to_global_id. 2019-03-28 09:56:10 +13:00
sierreis
d2f8bf730b Test exception when both filterset_class and filter_fields are set 2019-03-27 14:05:42 -04:00
Ronny Vedrilla
d5d0c519ce Replaced a copy-paste error causing one test case not to run 2019-03-27 15:21:15 +01:00
Andrew Bettke
a461e80ee4 Correctly encode / decode for python3+. 2019-03-27 17:56:06 +13:00
Andrew Bettke
83a2ad34cd Encode strings before passing to b64encode. 2019-03-27 17:28:56 +13:00
Andrew Bettke
980142dfcf Fix linting. 2019-03-27 17:24:13 +13:00
Andrew Bettke
36ac5626e9 Adds enhanced support for proxy models. 2019-03-27 17:09:25 +13:00
sierreis
132c4cb9d4 Fixed so that GrapheneFilterSetMixin is used with any provided filterset_class 2019-03-25 23:45:14 -04:00
sierreis
4d905a46ac Fixed flake8 lint error 2019-03-25 10:03:54 -04:00
sierreis
5c191b9062 Add support for filterset_class meta parameter
* Allow for use of either filter_fields or filterset_class
* Add tests to check that the behavior is similar to filter_fields
* Add documentation to show how to make use of the parameter
2019-03-25 00:38:49 -04:00
Adam Johnson
ea2cd9894f Always use HTTPS for CDN files (#498)
* Always use HTTPS for CDN files

There's no point using insecure, deprecated HTTP even if the current page is on HTTP.

* add integrity and crossorigin attributes
2019-03-19 20:34:10 +00:00
Jonathan Kim
297b807f96
Merge pull request #508 from danpalmer/graphiql-no-querystring
Improve Security of GraphiQL
2019-03-16 11:30:32 +00:00
Jonathan Kim
ce8fa7f9f2 Fix lint error 2019-03-09 22:39:04 +01:00
Syrus Akbary
f76f38ef30
Merge pull request #512 from kalekseev/schema-to-stdout
Provide a way to dump schema to stdout.
2018-09-09 22:49:53 +02:00
Dan Palmer
2b08e59bea
Revert to default query execution behaviour
The only security risk here is persuading a user to execute a mutation,
which is probably not a big risk. To mitigate this risk and still keep
the same UX (that is so valuable), would require more work than is
proportionate for this PR.
2018-09-09 21:44:30 +01:00
Dan Palmer
040f6aa10e
Document, including whether fields are required 2018-09-09 19:01:00 +01:00
Dan Palmer
e6b21594d7
Add some documentation to DjangoDebug 2018-09-09 18:59:28 +01:00
Konstantin Alekseev
85527e1f94 Provide a way to dump schema to stdout. 2018-09-08 15:34:48 +03:00
Syrus Akbary
f4bbae29df
Updated version to 2.2.0 2018-09-05 23:20:25 +02:00
Syrus Akbary
21bad6105c
Merge pull request #472 from wsantos/master
Exclude id from mutation for create operations
2018-09-05 13:20:38 +02:00
Jay Hale
0314931f12 Removed Django < 1.11 compatibility checks from tests 2018-09-04 13:15:04 -04:00
Jay Hale
f8dff38e29 Remove unnecessary compat utility for Django < 1.11 2018-09-04 13:15:04 -04:00
Jay Hale
d8bdda94df Add back support for django-filter < 2 2018-09-04 13:15:04 -04:00
Jay Hale
dc0c2900d1 Making GrapheneFilterSetMixin compatible with django_filter 2 2018-09-04 13:15:04 -04:00
Dan Palmer
7e8f6dbd4e
Change quotes to improve some syntax highlighting 2018-08-30 20:58:00 +01:00
Dan Palmer
e50e12bc9f
Move GraphiQL's JS into a separate file for ease of CSP 2018-08-30 20:36:26 +01:00
Dan Palmer
24ebc20bf4
Fix comment 2018-08-30 20:32:38 +01:00
Dan Palmer
d1b734f07d
Allow the user to see the query before prompting
This also allows the introspection query through so that the user can
edit with intellisense before being prompted.
2018-08-30 20:31:39 +01:00
Dan Palmer
9a5b3556d3
Special case reloads as allowed if we can 2018-08-30 19:48:38 +01:00
Dan Palmer
0d8f9db3fb
Pass options from the fragment, not the template context 2018-08-30 19:48:21 +01:00
Dan Palmer
3755850c2e
Use the fragment for the URL 2018-08-30 19:47:48 +01:00
Dan Palmer
219005952a
Don't execute on GET for GraphiQL
We can also now return GraphiQL earlier in the request handling.
2018-08-30 19:29:33 +01:00
Waldecir Santos
d4a9c2bb89 Fix tests. 2018-07-22 23:53:58 +01:00
Waldecir Santos
c1bd3c4c15 Exclude id from mutation, useful for create operations. 2018-07-22 23:35:11 +01:00
Syrus Akbary
dc561c68c4 Updated version to 2.1.0 2018-07-19 16:52:24 -07:00
Syrus Akbary
54ef52e1c6 Reformatted files using black 2018-07-19 16:52:24 -07:00
Syrus Akbary
1755948768
Update __init__.py 2018-06-08 11:53:00 -07:00
Syrus Akbary
763665f2f6 Updated version to 2.1rc0 2018-06-05 15:21:11 -07:00
Syrus Akbary
27a7c0e299 Added support for FilePathField 2018-06-05 14:39:51 -07:00
Syrus Akbary
a9d819e1f7 Removed repeated function 2018-06-05 14:24:41 -07:00
Syrus Akbary
10d2f3eea7 Commented the input form class, for now 2018-06-05 14:17:07 -07:00
Syrus Akbary
364d4f8f41 Merge branch 'master' into form_mutations 2018-06-05 13:32:45 -07:00
Syrus Akbary
546a82b7ec Updated time imports 2018-06-05 13:32:32 -07:00
Syrus Akbary
bb6da28008 Merge branch 'master' into form_mutations 2018-06-05 13:31:29 -07:00
Syrus Akbary
a9e5beb9eb Merge branch 'master' into form_mutations
# Conflicts:
#	graphene_django/forms/converter.py
#	graphene_django/forms/tests/test_converter.py
2018-06-05 13:23:39 -07:00
Syrus Akbary
883d1778d5
Merge pull request #336 from urbandove/django2
support Django 2 + in tests
2018-06-05 13:02:09 -07:00
Syrus Akbary
7563045d75
Merge pull request #290 from DouglasConnect/fix-distinct-bug
Fix distinct bug
2018-06-05 12:57:19 -07:00
Syrus Akbary
a65f786ba4 Fixed requirement 2018-06-05 12:31:25 -07:00
Syrus Akbary
33c6fdf5ab Added graphql-core min version to requirements 2018-06-05 01:24:53 -07:00
=
43c0c99136 fix lint error 2018-04-15 00:21:53 -04:00
=
b331319aea Fix merge conflicts 2018-04-15 00:12:49 -04:00
Syrus Akbary
a480a39713
Merge pull request #326 from pizzapanther/drf-serializer-update
DRF Serializer update
2018-03-29 23:22:14 -07:00
Syrus Akbary
70dffa94e7
Merge pull request #212 from maqquettex/fix_cbv_inheritance
Inheritance support for GraphQLView (class attributes)
2018-03-29 23:19:29 -07:00
Syrus Akbary
d2c1e7c87b
Merge pull request #391 from mongkok/test-custom-meta-setdefault
Test DjangoObjectType custom meta .setdefault()
2018-03-29 21:02:35 -07:00
Daniel Bachler
c32340662c Remove print statement 2018-03-28 12:28:58 +02:00
Syrus Akbary
fdb7d5a253
Merge pull request #395 from mbarrientos/drf-list-serializers
Fixes #371 - Support ListSerializer fields in SerializerMutation
2018-03-14 23:31:10 -07:00
Daniel Bachler
34f5978446 Move distinct check code to merge_querysets again 2018-02-28 17:52:27 +01:00
Daniel Bachler
4d41160379 Update resolve method signature to 2.0 style in new test 2018-02-28 17:45:25 +01:00
Daniel Bachler
e05fbcc1b3 Fix failing unit test by handling cases where a connection is resolved involving a query with inner join and distinct that is then filtered and would be combined with a filtered queryset that is not distinct. 2018-02-28 14:41:47 +01:00
Daniel Bachler
23eb8eea80 Add failing test case 2018-02-28 14:41:47 +01:00
eyal0803
e12c329507
Added support for Django 1.8.x
Since I didn't know why the `rel` attribute wasn't there in the first place, maybe it's better to use the `remote_field` only if it's there and leave `rel` as a default (i.e else).
2018-02-23 12:20:37 +02:00
eyal0803
e51f6070df
Fixes #400
After more digging than I expected (and planned), I'm 99% sure that the problem comes from `graphene_django`.

I found a [comment](16436f3751/django/db/models/fields/reverse_related.py (L4-L6)) in Django's source that refers to an attribute named `remote_field`, instead of `rel`.

It seamed to fix the problem for me without any other bugs (yet).
2018-02-22 05:45:40 +02:00
mbarrientos
3793ce17c0 Add support for ListSerializer fields in SerializerMutation 2018-02-13 12:12:50 +01:00
Syrus Akbary
dbd3957a9f
Merge pull request #340 from urbandove/qfactor
Fix qfactor rankings for HTTP-ACCEPT
2018-02-11 14:01:18 -08:00
Syrus Akbary
5b17e98217
Merge pull request #356 from jkimbo/upgrade-graphiql
Upgrade graphiql and react versions
2018-02-11 13:47:48 -08:00
Syrus Akbary
c0edb0c927
Merge pull request #373 from jm2242/proxy-model-support
Basic Proxy model support
2018-02-11 13:46:13 -08:00
=
12b022a49a Remove old test 2018-02-09 16:46:22 -05:00
Syrus Akbary
94ee97085f
Merge pull request #368 from sciyoshi/convert-date-time
Convert Date/Time/DateTime form fields to appropriate Graphene types
2018-02-08 12:15:00 -08:00
Syrus Akbary
adde400893
Merge pull request #335 from urbandove/master
models.DateField => graphene Date Scalar
2018-02-08 12:14:13 -08:00
Paul Bailey
91a99ee39c serializer update support 2018-02-06 13:37:28 -06:00
Syrus Akbary
c585982a1a
Merge pull request #382 from patrick91/patch-1
Improve ErrorType
2018-02-03 22:25:03 -08:00
Jonathan Mares
bfcfccfc8d undo cascade changes 2018-02-03 22:51:25 -05:00
=
da3bb5eea8 Bump graphene-django version 2018-02-03 18:35:38 -05:00
=
1bf5da2a8d Remove commits related to django 2.0 support from pull request 2018-02-03 18:32:18 -05:00
Jonathan Mares
bc1d47efb5 fix a line break 2018-02-03 14:36:25 -05:00
Jonathan Mares
0b103417f9 on_delete param where needed due to django 2 requirements
added support for querying a model with objects that may be a proxy model, fixed and added tests

a few style changes
2018-02-03 11:10:04 -05:00
mongkok
55dc65753e Test custom meta .setdefault() 2018-02-03 21:12:35 +05:30
Syrus Akbary
e827b10e7b
Merge pull request #379 from mongkok/default-meta
Allow DjangoObjectType to have default meta
2018-02-02 15:06:09 -08:00
Syrus Akbary
fd3faf04e5
Merge pull request #341 from urbandove/tests
Add tests
2018-02-02 13:57:12 -08:00
mongkok
3051374b46 Fix Python 2.7 super arguments 2018-02-03 03:23:10 +05:30
mongkok
b81e961c86 Test DjangoObjectType with custom meta #364 2018-02-03 03:16:58 +05:30
Anton Zhdan-Pushkin
3682fe0318 Test of inherited class 2018-02-01 16:39:06 +02:00
Anton Zhdan-Pushkin
2cb3d4b68e Class attributes for GraphQLView (schema, pretty, graphiql, batch) 2018-02-01 16:39:06 +02:00
Jonathan Kim
cf35f7c76c Upgrade graphiql and react versions 2018-02-01 10:01:05 +00:00
Samuel Cormier-Iijima
bb2d24ec27
Convert Date/Time/DateTime form fields to appropriate Graphene types 2018-02-01 09:57:24 +00:00
Patrick Arminio
6a152820ca
Improve ErrorType
Marks some fields as required and non null, it also prevents to do useless checks on the frontend if using a typed language.
2018-02-01 09:52:16 +00:00
mongkok
167d0a3964 Allow DjangoObjectType to have default _meta 2018-01-22 01:03:52 +05:30
=
1352d4e02b Fix func names 2017-12-18 12:33:42 -05:00
=
f31db13cd0 Add blank line for linting 2017-12-18 12:02:04 -05:00
=
28cccb49f7 add saces for linter 2017-12-18 11:40:19 -05:00
=
6da95d72ea Rename [html/json]_index to _priority 2017-12-16 19:32:01 -05:00
=
51f794edb6 Test Connectionfield with custom Manager 2017-12-12 12:52:32 -05:00
=
616c549d2c Fix ConnectionField Last Test 2017-12-12 12:49:02 -05:00
=
29935c2d33 Test Last works 2017-12-12 12:33:32 -05:00
=
de59d26968 Test: erro if last is greater than max - plus fix wrong variable 2017-12-12 12:24:11 -05:00
=
65e63026a0 Add tests 2017-12-11 21:23:00 -05:00
=
6008cb6de4 Fix qfactor rankings for HTTP-ACCEPT 2017-12-11 21:08:42 -05:00
=
d2db5f5584 Remove Django1.7 shims 2017-12-10 00:53:13 -05:00
=
f687406ac5 Add on_delete atrributes to test models foreignkeys 2017-12-07 13:00:22 -05:00
=
384bff08e8 Add fallback for depracated atrribute 2017-12-06 13:10:03 -05:00