graphql-python / graphql-python/graphene

Remove promise import from graphene.test.Client

Đang mở
#1,260 6 bình luận 2 reaction 0 người được giao Xem trên GitHub
🐛 bug
Ngôn ngữ chính
Python
Star
8.2k
Fork
818
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

* **What is the current behavior?**
Installing `graphene==v3.0.0b5` does not auto install `promise` which is required when writing tests using `graphene.test.Client` (see here)

```/tmp/graphene master
venv 福 pip install graphene==3.0.0b5
Collecting graphene==3.0.0b5
Using cached graphene-3.0b5-py2.py3-none-any.whl (106 kB)
Collecting aniso8601<9,>=8
Using cached aniso8601-8.0.0-py2.py3-none-any.whl (43 kB)
Collecting graphql-relay<4,>=3.0
Using cached graphql_relay-3.0.0-py3-none-any.whl (15 kB)
Collecting graphql-core<4,>=3.1.2
Using cached graphql_core-3.1.2-py3-none-any.whl (183 kB)
Installing collected packages: aniso8601, graphql-core, graphql-relay, graphene
Successfully installed aniso8601-8.0.0 graphene-3.0b5 graphql-core-3.1.2 graphql-relay-3.0.0

/tmp/graphene master
venv 福 pip freeze
aniso8601==8.0.0
graphene==3.0b5
graphql-core==3.1.2
graphql-relay==3.0.0
```

* **What is the expected behavior?**
The installation procedure installs `promise` as it's currently being done with the version `v2.1.8`
```/tmp/graphene master
venv 福 pip install graphene
Collecting graphene
Using cached graphene-2.1.8-py2.py3-none-any.whl (107 kB)
Collecting graphql-relay<3,>=2
Using cached graphql_relay-2.0.1-py3-none-any.whl (20 kB)
Collecting graphql-core<3,>=2.1
Using cached graphql_core-2.3.2-py2.py3-none-any.whl (252 kB)
Collecting six<2,>=1.10.0
Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting aniso8601<=7,>=3
Using cached aniso8601-7.0.0-py2.py3-none-any.whl (42 kB)
Processing /home/valz/.cache/pip/wheels/54/aa/01/724885182f93150035a2a91bce34a12877e8067a97baaf5dc8/promise-2.3-py3-none-any.whl
Collecting rx<2,>=1.6
Using cached Rx-1.6.1-py2.py3-none-any.whl (179 kB)
Installing collected packages: rx, six, promise, graphql-core, graphql-relay, aniso8601, graphene
Successfully installed aniso8601-7.0.0 graphene-2.1.8 graphql-core-2.3.2 graphql-relay-2.0.1 promise-2.3 rx-1.6.1 six-1.15.0

/tmp/graphene master
venv 福 pip freeze
aniso8601==7.0.0
graphene==2.1.8
graphql-core==2.3.2
graphql-relay==2.0.1
promise==2.3
Rx==1.6.1
six==1.15.0
```

* **What is the motivation / use case for changing the behavior?**
I wrote tests using the test client, and while everything worked fine on my laptop at first (I may have installed graphene v2 before the v3), our CI freshly installed from v3 and failed to run tests because of this missing package, which made me realize there seems to be a packaging issue on your side (we use poetry with `poetry add graphene --allow-prereleases` - but pip failed to install the expected dep as well)

* **Please tell us about your environment:**
- Version: v3.0.0b5
- Platform: ArchLinux x86_64 Linux 5.8.1-arch1-1

* **Other information** (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow)

Actual stacktrace from my failing CI job
```
ImportError while importing test module '/builds/redacted/redacted/redacted/tests/test_graphql.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
redacted/tests/test_graphql.py:6: in
from graphene.test import Client
/var/www/.cache/pypoetry/virtualenvs/redacted-674zaAdZ-py3.8/lib/python3.8/site-packages/graphene/test/__init__.py:1: in
from promise import Promise, is_thenable
E ModuleNotFoundError: No module named 'promise'
```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Bắt đầu với graphene/test/__init__.py, nơi traceback cho thấy promise import bị lỗi, sau đó kiểm tra metadata của các dependency được sử dụng để build package graphene. Xác minh hành vi trong một môi trường mới bằng cách cài đặt graphene v3.0.0b5 và import graphene.test.Client; hoàn tất khi client import hoạt động mà không có ModuleNotFoundError đã nêu.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
api, backend
Loại issue
Lỗi
Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.