Работа с Graphite-web
Graphite-web принимает вклад на GitHub в виде проблем или запросов на вытягивание. Если вы знакомы с Python, вот как начать.
Сначала имейте в виду, что Graphite-web поддерживает версии Python 2.6 до 2.7 и Django версии 1.4 и выше.
Настройка среды разработки
Рекомендуемый рабочий процесс — использовать virtualenv / virtualenvwrapper для изоляции проектов друг от друга. В этом документе используется virtualenv как наименьший общий знаменатель.
Создайте virtualenv в корне вашего репозитория graphite-web:
virtualenv env source env/bin/activate
Установите необходимые зависимости:
pip install -r requirements.txt
Создайте стандартные каталоги хранения:
mkdir -p storage/{ceres,whisper,log/webapp} Затем вы сможете запустить сервер разработки graphite:
cd webapp ./manage.py runserver
Запуск тестов
Для запуска тестов для Python и Django версий вашего virtualenv:
cd webapp ./manage.py test --settings=tests.settings
Если вы хотите запустить тесты для всех комбинаций версий Python и Django, можете использовать инструмент tox.
pip install tox tox
Это запустит тесты для всех конфигураций, объявленных в файле tox.ini в корне репозитория.
Вы можете увидеть все доступные конфигурации, выполнив:
tox -l
Вы можете запустить отдельную конфигурацию с помощью:
tox -e <configuration>
Обратите внимание, что на вашей системе необходима соответствующая версия Python. Большинство систем предоставляют только одну или две разные версии Python, вам нужно установить другие версии самостоятельно.
Написание тестов
Запросы на вытягивание для новых функций или исправлений ошибок должны сопровождаться тестами, демонстрирующими, что функция или исправление действительно работают. Тесты находятся в каталоге webapp/tests.
При написании нового теста обратите внимание на существующие файлы, чтобы определить, подходит ли ваш тест к одному из них. В противном случае просто создайте новый файл с именем test_<whatever>.py со следующим содержимым:
from django.test import TestCase
class WhateverTest(TestCase):
def test_something(self):
self.assertEqual(1, 2 / 2) Вы можете прочитать документацию Django по тестированию для получения дополнительной информации о django.test.TestCase и о том, как работают тесты с Django.
© 2008–2012 Chris Davis
© 2011–2016 The Graphite Project
Licensed under the Apache License, Version 2.0.
https://graphite.readthedocs.io/en/latest/development.html