Хорошая проблема включает в себя короткий, автономный, правильный пример проблемы, что-то вроде:
assert github.Github().get_user("jacquev6").name == "Vincent Jacques"
Ещё лучше, если вы предоставите журналы отладки, связанные с вашей проблемой. Включите их с помощью github.enable_console_debug_logging
и скопируйте их в тело проблемы.
Внимание: вы можете захотеть удалить некоторую личную информацию (информация для аутентификации удалена, но в сообщениях может быть личная информация).
Если по какой-либо причине вы не можете этого сделать, всё равно откройте свою проблему, и сопровождающий увидит, что нужно для решения вашей проблемы.
Запросы на вытягивание должны чётко описывать две вещи:
В идеале изменения должны вноситься логическими коммитами, а тесты добавляться для улучшения покрытия проекта API GitHub.
PyGithub использует стиль чёрного кодирования и использует isort для сортировки импорта.
Чтобы вручную отформатировать код:
tox -e lint
Чтобы забыть о стиле кодирования и позволить предварительному коммиту исправить вашу проблему с flake8/isort/black.
pre-commit install
Вот и всё!
$ python scripts/add_attribute.py [class_name] [attribute_name] [attribute_type]
# Например, если вы хотите добавить атрибут url строкового типа в класс Commit
# Примечание: при добавлении нескольких атрибутов вам придётся запускать скрипт несколько раз
$ python scripts/add_attribute.py Commit url string
Прежде чем удалять атрибуты/методы, рассмотрите возможность добавления предупреждений об устаревании. Пакет Deprecated предоставляет удобный декоратор для добавления предупреждений об устаревании с необязательным объяснением.
from deprecated import deprecated
@property
@deprecated
def rate(self):
pass
@deprecated(reason="Deprecated in favor of the new branch protection")
def get_protected_branch(self):
pass
Сначала вам нужно установить тестовые зависимости:
pip install -r test-requirements.txt
Затем вы можете запустить тесты через pytest
.
Запустите конкретный тест с pytest tests/tests_filename.py
или pytest tests/tests_filename.py -k testMethod
или pytest -k TestClass.testMethod
.
Если вы добавите новый тест, например Issue139.testCompletion
, вам нужно будет запустить pytest -k Issue139.testCompletion --record
, чтобы создать файлы tests/ReplayData/*.txt
, необходимые для вашего нового теста. Проверьте их и зафиксируйте. Вам понадобится файл GithubCredentials.py
в корне проекта со следующим содержимым:
login = "my_login"
password = "my_password" # Можно оставить пустым, если не используется
oauth_token = "my_token" # Можно оставить пустым, если не используется
jwt = "my_json_web_token" # Можно оставить пустым, если не используется
Если у вас включена двухфакторная аутентификация в вашем аккаунте Github, тесты, требующие аутентификации с логином/паролем, завершатся ошибкой. Вы можете использовать pytest Issue139.testCompletion --record --auth_with_token
, чтобы использовать поле oauth_token
, указанное в GithubCredentials.py
, при записи взаимодействия с модульным тестом. Обратите внимание, что password = ""
(пустая строка подходит) всё ещё должна присутствовать в GithubCredentials.py
, чтобы запускать тесты даже при использовании аргумента --auth_with_token
. (Также обратите внимание, что если вы записываете свои тестовые данные с помощью --auth_with_token
, то вам также необходимо находиться в режиме аутентификации по токену при запуске теста. Простой альтернативой является замена token private_token_removed
на Basic login_and_password_removed
во всех ваших вновь созданных файлах ReplayData.)
Аналогично вы можете использовать pytest Issue139.testCompletion --record --auth_with_jwt
, чтобы использовать поле jwt
, указанное в GithubCredentials.py
, для доступа к конечным точкам, требующим JWT.
Для запуска ручных тестов с внешними сценариями, использующими пакет PyGithub, вы можете установить разрабатываемую версию с помощью:
pip install --editable path/to/project
Вы также можете изучить... Для запуска тестов с помощью tox:
pip install tox
tox -epy36
pip install -r requirements.txt
sphinx-build doc build
Если вы используете tox:
tox -edocs
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )