You've already forked httpie-cli
mirror of
https://github.com/httpie/cli.git
synced 2025-08-10 22:42:05 +02:00
Create Python virtual environment (via venv) for tests & development, etc.
This commit is contained in:
115
Makefile
115
Makefile
@@ -2,44 +2,88 @@
|
||||
# See ./CONTRIBUTING.rst
|
||||
###############################################################################
|
||||
|
||||
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||
VERSION=$(shell grep __version__ httpie/__init__.py)
|
||||
REQUIREMENTS="requirements-dev.txt"
|
||||
TAG="\n\n\033[0;32m\#\#\# "
|
||||
END=" \#\#\# \033[0m\n"
|
||||
REQUIREMENTS=requirements-dev.txt
|
||||
H1="\n\n\033[0;32m\#\#\# "
|
||||
H1END=" \#\#\# \033[0m\n"
|
||||
|
||||
|
||||
# Only used to create our venv.
|
||||
SYSTEM_PYTHON=python3
|
||||
|
||||
VENV_ROOT=venv
|
||||
VENV_BIN=$(VENV_ROOT)/bin
|
||||
VENV_PIP=$(VENV_BIN)/pip3
|
||||
VENV_PYTHON=$(VENV_BIN)/python3
|
||||
|
||||
|
||||
all: uninstall-httpie install test
|
||||
|
||||
|
||||
install:
|
||||
@echo $(TAG)Installing dev requirements$(END)
|
||||
pip install --upgrade -r $(REQUIREMENTS)
|
||||
install: venv
|
||||
@echo $(H1)Installing dev requirements$(H1END)
|
||||
$(VENV_PIP) install --upgrade -r $(REQUIREMENTS)
|
||||
|
||||
@echo $(TAG)Installing HTTPie$(END)
|
||||
pip install --upgrade --editable .
|
||||
@echo $(H1)Installing HTTPie$(H1END)
|
||||
$(VENV_PIP) install --upgrade --editable .
|
||||
|
||||
@echo
|
||||
|
||||
clean:
|
||||
@echo $(TAG)Cleaning up$(END)
|
||||
@echo $(H1)Cleaning up$(H1END)
|
||||
rm -rf $(VENV_ROOT)
|
||||
# Symlink for virtualenvwrapper, if we’ve created one.
|
||||
[ -n "$(WORKON_HOME)" -a -L "$(WORKON_HOME)/httpie" -a -f "$(WORKON_HOME)/httpie" ] && rm $(WORKON_HOME)/httpie || true
|
||||
rm -rf .tox *.egg dist build .coverage .cache .pytest_cache httpie.egg-info
|
||||
find . -name '__pycache__' -delete -print -o -name '*.pyc' -delete -print
|
||||
find . -name '__pycache__' -delete -o -name '*.pyc' -delete
|
||||
@echo
|
||||
|
||||
|
||||
venv:
|
||||
@echo $(H1)Creating a Python environment $(VENV_ROOT) $(H1END)
|
||||
|
||||
$(SYSTEM_PYTHON) -m venv --prompt httpie $(VENV_ROOT)
|
||||
|
||||
@echo
|
||||
@echo done.
|
||||
@echo
|
||||
@echo To active it manually, run:
|
||||
@echo
|
||||
@echo " source $(VENV_BIN)/activate"
|
||||
@echo
|
||||
@echo '(learn more: https://docs.python.org/3/library/venv.html)'
|
||||
@echo
|
||||
@if [ -n "$(WORKON_HOME)" ]; then \
|
||||
echo $(ROOT_DIR) > $(VENV_ROOT)/.project; \
|
||||
if [ ! -d $(WORKON_HOME)/httpie -a ! -L $(WORKON_HOME)/httpie ]; then \
|
||||
ln -s $(ROOT_DIR)/$(VENV_ROOT) $(WORKON_HOME)/httpie ; \
|
||||
echo ''; \
|
||||
echo 'Since you use virtualenvwrapper, we created a symlink'; \
|
||||
echo 'so you can also use "workon httpie" to activate the venv.'; \
|
||||
echo ''; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Testing
|
||||
###############################################################################
|
||||
|
||||
|
||||
test:
|
||||
@echo $(TAG)Running tests on the current Python interpreter with coverage $(END)
|
||||
py.test --cov ./httpie --cov ./tests --doctest-modules --verbose ./httpie ./tests
|
||||
@echo $(H1)Running tests on the current Python interpreter $(HEADER_EXTRA) $(H1END)
|
||||
$(VENV_BIN)/py.test $(COV) ./httpie $(COV) ./tests --doctest-modules --verbose ./httpie ./tests
|
||||
@echo
|
||||
|
||||
|
||||
test-cover: COV=--cov
|
||||
test-cover: HEADER_EXTRA='(with coverage)'
|
||||
test-cover: test
|
||||
|
||||
|
||||
# test-all is meant to test everything — even this Makefile
|
||||
test-all: uninstall-all clean install test test-tox test-dist pycodestyle
|
||||
test-all: clean install test test-tox test-dist pycodestyle
|
||||
@echo
|
||||
|
||||
|
||||
@@ -48,36 +92,38 @@ test-dist: test-sdist test-bdist-wheel
|
||||
|
||||
|
||||
test-tox: uninstall-httpie install
|
||||
@echo $(TAG)Running tests on all Pythons via Tox$(END)
|
||||
@echo $(H1)Running tests on all Pythons via Tox$(H1END)
|
||||
tox
|
||||
@echo
|
||||
|
||||
|
||||
test-sdist: clean uninstall-httpie
|
||||
@echo $(TAG)Testing sdist build an installation$(END)
|
||||
python setup.py sdist
|
||||
pip install --force-reinstall --upgrade dist/*.gz
|
||||
which http
|
||||
@echo $(H1)Testing sdist build an installation$(H1END)
|
||||
$(VENV_PYTHON) setup.py sdist
|
||||
$(VENV_PIP) install --force-reinstall --upgrade dist/*.gz
|
||||
$(VENV_BIN)/http --version
|
||||
@echo
|
||||
|
||||
|
||||
test-bdist-wheel: clean uninstall-httpie
|
||||
@echo $(TAG)Testing wheel build an installation$(END)
|
||||
python setup.py bdist_wheel
|
||||
pip install --force-reinstall --upgrade dist/*.whl
|
||||
which http
|
||||
@echo $(H1)Testing wheel build an installation$(H1END)
|
||||
$(VENV_PYTHON) setup.py bdist_wheel
|
||||
$(VENV_PIP) install --force-reinstall --upgrade dist/*.whl
|
||||
$(VENV_BIN)/http --version
|
||||
@echo
|
||||
|
||||
|
||||
pycodestyle:
|
||||
which pycodestyle || pip install pycodestyle
|
||||
pycodestyle
|
||||
@echo $(H1)Running pycodestyle$(H1END)
|
||||
@[ -f $(VENV_BIN)/pycodestyle ] || $(VENV_PIP) install pycodestyle
|
||||
$(VENV_BIN)/pycodestyle httpie/ tests/ extras/ *.py
|
||||
@echo
|
||||
|
||||
|
||||
codecov:
|
||||
which codecov || pip install codecov
|
||||
codecov --required
|
||||
codecov-upload:
|
||||
@echo $(H1)Running codecov$(H1END)
|
||||
@[ -f $(VENV_BIN)/codecov ] || $(VENV_PIP) install codecov
|
||||
$(VENV_BIN)/codecov --required
|
||||
@echo
|
||||
|
||||
|
||||
@@ -90,7 +136,7 @@ publish: test-all publish-no-test
|
||||
|
||||
|
||||
publish-no-test:
|
||||
@echo $(TAG)Testing wheel build an installation$(END)
|
||||
@echo $(H1)Testing wheel build an installation$(H1END)
|
||||
@echo "$(VERSION)"
|
||||
@echo "$(VERSION)" | grep -q "dev" && echo '!!!Not publishing dev version!!!' && exit 1 || echo ok
|
||||
python setup.py sdist bdist_wheel
|
||||
@@ -104,8 +150,8 @@ publish-no-test:
|
||||
###############################################################################
|
||||
|
||||
uninstall-httpie:
|
||||
@echo $(TAG)Uninstalling httpie$(END)
|
||||
- pip uninstall --yes httpie &2>/dev/null
|
||||
@echo $(H1)Uninstalling httpie$(H1END)
|
||||
- $(VENV_PIP) uninstall --yes httpie &2>/dev/null
|
||||
|
||||
@echo "Verifying…"
|
||||
cd .. && ! python -m httpie --version &2>/dev/null
|
||||
@@ -114,15 +160,6 @@ uninstall-httpie:
|
||||
@echo
|
||||
|
||||
|
||||
uninstall-all: uninstall-httpie
|
||||
|
||||
@echo $(TAG)Uninstalling httpie requirements$(END)
|
||||
- pip uninstall --yes pygments requests
|
||||
|
||||
@echo $(TAG)Uninstalling development requirements$(END)
|
||||
- pip uninstall --yes -r $(REQUIREMENTS)
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Docs
|
||||
###############################################################################
|
||||
|
Reference in New Issue
Block a user