kopia lustrzana https://github.com/longclawshop/longclaw
				
				
				
			Initial testing fixes (#485)
* Test py 37,38,39 (#1) dj 22 wt 211,212,213 * Fixes the template include issue with the lock/unlock menu item * Pin the upper bound of the supported Wagtail version to 2.13 and Django to 2.2 * Add some initial documentation for development setuppull/488/head
							rodzic
							
								
									d4e1257033
								
							
						
					
					
						commit
						33f02445ef
					
				|  | @ -0,0 +1,56 @@ | |||
| name: Tests | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - main | ||||
| 
 | ||||
|   pull_request: | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.ref }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| permissions: | ||||
|   contents: read # to fetch code (actions/checkout) | ||||
| 
 | ||||
| jobs: | ||||
| 
 | ||||
|   test-python: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         python: ["3.7", "3.8", "3.9"] | ||||
| 
 | ||||
|     steps: | ||||
|       - uses: actions/checkout@v2 | ||||
|       - name: Install NPM and dependencies | ||||
|         uses: actions/setup-node@v2 | ||||
|         with: | ||||
|           node-version: '12.x' | ||||
|       - name: Build client | ||||
|         run: | | ||||
|           npm install --prefix ./longclaw/client | ||||
|           npm run build --prefix ./longclaw/client | ||||
|       - name: Upload client | ||||
|         uses: actions/upload-artifact@v2 | ||||
|         with: | ||||
|           name: client | ||||
|           path: ./longclaw/core/static/core/js | ||||
| 
 | ||||
|       - uses: actions/checkout@v3 | ||||
|       - name: Setup Python | ||||
|         uses: actions/setup-python@v4 | ||||
|         with: | ||||
|           python-version: ${{ matrix.python }} | ||||
|       - name: Install dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           python -m pip install tox tox-gh-actions | ||||
|       - name: Download client | ||||
|         uses: actions/download-artifact@v2 | ||||
|         with: | ||||
|           name: client | ||||
|           path: ./longclaw/core/static/core/js | ||||
|       - name: Test with tox | ||||
|         run: tox | ||||
|  | @ -53,4 +53,7 @@ docs/_build | |||
| 
 | ||||
| webpack-stats.json | ||||
| *bundle.js* | ||||
| .eggs/ | ||||
| .eggs/ | ||||
| 
 | ||||
| # local virtual environment | ||||
| /venv | ||||
|  |  | |||
|  | @ -0,0 +1 @@ | |||
| 3.7 | ||||
							
								
								
									
										4
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										4
									
								
								Makefile
								
								
								
								
							|  | @ -31,13 +31,13 @@ lint: ## check style with flake8 | |||
| 	flake8 longclaw tests | ||||
| 
 | ||||
| test: ## run tests quickly with the default Python
 | ||||
| 	python runtests.py tests | ||||
| 	python runtests.py | ||||
| 
 | ||||
| test-all: ## run tests on every Python version with tox
 | ||||
| 	tox | ||||
| 
 | ||||
| coverage: ## check code coverage quickly with the default Python
 | ||||
| 	coverage run --source longclaw runtests.py tests | ||||
| 	coverage run --source longclaw runtests.py | ||||
| 	coverage report -m | ||||
| 	coverage html | ||||
| 	open htmlcov/index.html | ||||
|  |  | |||
							
								
								
									
										41
									
								
								README.md
								
								
								
								
							
							
						
						
									
										41
									
								
								README.md
								
								
								
								
							|  | @ -1,7 +1,7 @@ | |||
| # Longclaw | ||||
| 
 | ||||
| 
 | ||||
| ## Call For Maintainers | ||||
| 
 | ||||
| If you are interested in developing this project, please get in touch | ||||
| https://github.com/JamesRamm/longclaw/issues/375 | ||||
| 
 | ||||
|  | @ -12,8 +12,6 @@ https://github.com/JamesRamm/longclaw/issues/375 | |||
| 
 | ||||
| An e-commerce extension for [Wagtail CMS](https://github.com/wagtail/wagtail) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Checkout the [documentation](https://longclawshop.github.io/longclaw/) | ||||
| 
 | ||||
|  | ||||
|  | @ -23,28 +21,28 @@ Checkout the [documentation](https://longclawshop.github.io/longclaw/) | |||
| Install Longclaw: | ||||
| 
 | ||||
| ```bash | ||||
|   $ pip install longclaw | ||||
| pip install longclaw | ||||
| ``` | ||||
| 
 | ||||
| Setup a Longclaw project | ||||
| 
 | ||||
| ```bash | ||||
|   $ longclaw start my_project | ||||
| longclaw start my_project | ||||
| ``` | ||||
| 
 | ||||
| Go to project directory and create missing migrations  | ||||
| 
 | ||||
| ```bash | ||||
|   $ python manage.py makemigrations home catalog | ||||
| python manage.py makemigrations home catalog | ||||
| ``` | ||||
| 
 | ||||
| Do migrations for whole project and run  | ||||
| 
 | ||||
| ```bash | ||||
|   $ python manage.py migrate | ||||
|   $ python manage.py loadcountries | ||||
|   $ python manage.py createsuperuser | ||||
|   $ python manage.py runserver | ||||
| python manage.py migrate | ||||
| python manage.py loadcountries | ||||
| python manage.py createsuperuser | ||||
| python manage.py runserver | ||||
| ``` | ||||
| 
 | ||||
| ## Features | ||||
|  | @ -61,5 +59,28 @@ Do migrations for whole project and run | |||
| 
 | ||||
|  | ||||
| 
 | ||||
| ## Development setup | ||||
| 
 | ||||
| Work in progress! | ||||
| 
 | ||||
| This is a brief guide to setting up a development environment for Longclaw. | ||||
| 
 | ||||
| Create a virtualenv and install the requirements | ||||
| 
 | ||||
| ```bash | ||||
| python3 -m venv venv | ||||
| source venv/bin/activate | ||||
| pip install -e ".[testing]" | ||||
| ``` | ||||
| 
 | ||||
| Run the tests | ||||
| 
 | ||||
| ```bash | ||||
| make test | ||||
| ``` | ||||
| 
 | ||||
| Run the tests with TOX | ||||
| 
 | ||||
| ```bash | ||||
| make test-all | ||||
| ``` | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| from decimal import Decimal | ||||
| from django.utils.module_loading import import_string | ||||
| from django.utils import timezone | ||||
| from ipware.ip import get_client_ip | ||||
| from ipware import get_client_ip | ||||
| 
 | ||||
| from longclaw.basket.utils import get_basket_items, destroy_basket | ||||
| from longclaw.shipping.utils import get_shipping_cost | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ | |||
|                 {% include "wagtailadmin/shared/page_status_tag.html" with page=page %} | ||||
| 
 | ||||
|                 {% include "wagtailadmin/pages/_privacy_switch.html" with page=page page_perms=page_perms only %} | ||||
|                 {% include "wagtailadmin/pages/_lock_switch.html" %} | ||||
|                 {% include "wagtailadmin/pages/action_menu/lock_unlock_menu_item.html" %} | ||||
|             </div> | ||||
|         </div> | ||||
|     </header> | ||||
|  | @ -47,4 +47,4 @@ | |||
| {% block extra_css %} | ||||
| {{ block.super }} | ||||
| {% include "wagtailadmin/pages/_editor_css.html" %} | ||||
| {% endblock %} | ||||
| {% endblock %} | ||||
|  |  | |||
|  | @ -64,7 +64,7 @@ MIDDLEWARE = [ | |||
|     'django.middleware.clickjacking.XFrameOptionsMiddleware', | ||||
|     'django.middleware.security.SecurityMiddleware', | ||||
| 
 | ||||
|     'wagtail.core.middleware.SiteMiddleware', | ||||
|     'wagtail.contrib.legacy.sitemiddleware.SiteMiddleware', | ||||
|     'wagtail.contrib.redirects.middleware.RedirectMiddleware', | ||||
| ] | ||||
| 
 | ||||
|  |  | |||
|  | @ -66,7 +66,7 @@ MIDDLEWARE = [ | |||
|     'django.middleware.common.CommonMiddleware', | ||||
|     'django.contrib.auth.middleware.AuthenticationMiddleware', | ||||
|     'django.contrib.messages.middleware.MessageMiddleware', | ||||
|     'wagtail.core.middleware.SiteMiddleware', | ||||
|     'wagtail.contrib.legacy.sitemiddleware.SiteMiddleware', | ||||
|     'wagtail.contrib.redirects.middleware.RedirectMiddleware', | ||||
| ] | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,2 +0,0 @@ | |||
| --index-url https://pypi.python.org/simple/ | ||||
| -e . | ||||
|  | @ -1,13 +0,0 @@ | |||
| -r requirements.txt | ||||
| bumpversion==0.6.0 | ||||
| wheel==0.38.1 | ||||
| setuptools==65.5.1 | ||||
| coverage>=4.5.2 | ||||
| mock>=2.0.0 | ||||
| flake8>=3.6.0 | ||||
| tox>=3.5.3 | ||||
| codecov>=2.0.15 | ||||
| 
 | ||||
| # Additional test requirements go here | ||||
| factory_boy>=2.11.1 | ||||
| wagtail-factories>=1.1.0 | ||||
							
								
								
									
										29
									
								
								setup.py
								
								
								
								
							
							
						
						
									
										29
									
								
								setup.py
								
								
								
								
							|  | @ -87,14 +87,30 @@ setup( | |||
|     ], | ||||
|     include_package_data=True, | ||||
|     install_requires=[ | ||||
|         'django==2.2.28', | ||||
|         'wagtail==2.11.8', | ||||
|         'django>=2.2,<3.0', | ||||
|         'wagtail>=2.11,<2.14', | ||||
|         'django-countries==5.5', | ||||
|         'django-extensions==2.2.1', | ||||
|         'djangorestframework==3.11.2', | ||||
|         'django-ipware==2.1.0', | ||||
|         'django-polymorphic==2.0.3', | ||||
|     ], | ||||
|     extras_require={ | ||||
|         "testing": [ | ||||
|             "bumpversion==0.6.0", | ||||
|             "wheel==0.38.1", | ||||
|             "setuptools==65.5.1", | ||||
|             "coverage>=4.5.2", | ||||
|             "mock==2.0.0", | ||||
|             "flake8>=3.6.0", | ||||
|             "tox>=3.5.3", | ||||
|             "codecov>=2.0.15", | ||||
|              | ||||
|             "# Additional test requirements go here", | ||||
|             "factory_boy>=2.11.1", | ||||
|             "wagtail-factories>=1.1.0", | ||||
|         ], | ||||
|     }, | ||||
|     license="MIT", | ||||
|     zip_safe=False, | ||||
|     keywords='longclaw', | ||||
|  | @ -102,13 +118,16 @@ setup( | |||
|         'Development Status :: 3 - Alpha', | ||||
|         'Framework :: Django', | ||||
|         'Framework :: Django :: 2.0', | ||||
|         'Framework :: Wagtail', | ||||
|         'Framework :: Wagtail :: 2', | ||||
|         'Intended Audience :: Developers', | ||||
|         'License :: OSI Approved :: BSD License', | ||||
|         'Natural Language :: English', | ||||
|         'Programming Language :: Python :: 3', | ||||
|         'Programming Language :: Python :: 3.3', | ||||
|         'Programming Language :: Python :: 3.4', | ||||
|         'Programming Language :: Python :: 3.5', | ||||
|         'Programming Language :: Python :: 3.7' | ||||
|         'Programming Language :: Python :: 3.8' | ||||
|         'Programming Language :: Python :: 3.9' | ||||
|         'Programming Language :: Python :: 3.10' | ||||
|     ], | ||||
|     entry_points=""" | ||||
|         [console_scripts] | ||||
|  |  | |||
							
								
								
									
										39
									
								
								tox.ini
								
								
								
								
							
							
						
						
									
										39
									
								
								tox.ini
								
								
								
								
							|  | @ -1,15 +1,40 @@ | |||
| [tox] | ||||
| skipsdist = True | ||||
| usedevelop = True | ||||
| skip_missing_interpreters = True | ||||
| 
 | ||||
| envlist = | ||||
|     {py35,py36,py37}-django-225 | ||||
|     py{37,38,39}-dj{22}-wt{211,212,213} | ||||
| 
 | ||||
| [gh-actions] | ||||
| python = | ||||
|     3.7: py37 | ||||
|     3.8: py38 | ||||
|     3.9: py39 | ||||
| 
 | ||||
| [testenv] | ||||
| setenv = | ||||
|     PYTHONPATH = {toxinidir}:{toxinidir}/longclaw | ||||
| commands = coverage run --source longclaw runtests.py | ||||
|            coverage xml --omit=*/apps.py,*/migrations/*,*/__init__.py,*/gateways/braintree.py,*/gateways/stripe.py,*/bin/longclaw.py | ||||
| 
 | ||||
| deps = | ||||
|     django-225: Django==2.2.5 | ||||
|     -r{toxinidir}/requirements_dev.txt | ||||
|     coverage | ||||
|     django-extensions | ||||
|     django-polymorphic | ||||
|     django-ipware | ||||
|     mock | ||||
|     wagtail-factories | ||||
| 
 | ||||
|     dj22: Django>=2.2,<3.0 | ||||
|     dj30: Django>=3.0,<3.1 | ||||
|     wt211: wagtail>=2.11,<2.12 | ||||
|     wt212: wagtail>=2.12,<2.13 | ||||
|     wt213: wagtail>=2.13,<2.14 | ||||
| 
 | ||||
| install_command = pip install -U {opts} {packages} | ||||
| 
 | ||||
| commands =  | ||||
|     coverage run --source longclaw runtests.py | ||||
|     coverage xml --omit=*/apps.py,*/migrations/*,*/__init__.py,*/gateways/braintree.py,*/gateways/stripe.py,*/bin/longclaw.py | ||||
| 
 | ||||
| basepython = | ||||
|     py37: python3.7 | ||||
|     py36: python3.6 | ||||
|     py35: python3.5 | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Nick Moreton
						Nick Moreton