wagtail-longclaw/vagrant
thenewguy 85e4cfed61 Issue 219 calculated rates base class (#230)
* add test for get_shipping_cost with a basket rate

* add fields to allow us to tie shipping rate to a basket & address

* add test for testing specified address and basket

* add migration for new shipping rate fields

* add missing import

* fix name errors

* add shipping possibilities based on shipping address and basket id

* test basket, shipping address, & basket+shipping address rate assignment

* return correct rates for basket and address rate cases

* rename shipping rate address for clarity (origin/destination)

* send basket modified signal when basket is modified via api endpoints

* test address only rate

* remove basket rates when the basket_modified signal is sent

* show response content on error

* print response content on failure for more tests and include more 200
statuses for put

* getting different status codes back from our endpoints, check success

* clear shipping rates based on destination address when address modified

* allow get params

* return cost and rate options for more cases (test not complete)

* fix mock

* return applicable shipping options and test some combinations

* stub the rate processor interface

* add fk from rate to processor that created it

* set rate basket and destination

* shipping processor instance can apply to more than one country

* run processor get_rates if configured

* let child models handle assignment

* add some initial testing for processor

* rename _get_rates() to process_rates()

* allow disabling the success check

* test country shipping option with processor requires destination

* test that the endpoint calls get_rate on the processor

* test that multiple processors are called once

* add shipping_origin fk to site settings

* add default cache key based on origin, destination, & basket items

* test a trivial rate processor implementation is used

* test cost endpoint returns the processed rate

* pin version requirement

* fix wagtail version

* start vagrant config

* get tox to run

* install nvm for vagrant user

* add instructions to move npm deps off shared folder for speed

* compact into a shell script for ease of use

* add some more examples as temporary documentation

* tests require dev reqs

* clean this up a little

* add migrations for productrequest app to fix test runner

* raise exception on error instead of returning error response

* test exception raised when country and country code specified

* test for destination address does not exist

* test exception when country and country code are not supplied

* set request.site as it is expected

* test get_shipping_cost_kwargs with only country code

* check the basket id and the settings

* value passed for country is supposed to be PK

* test with country specified

* write test so we can test with iso as string of known value

* tes destination is respected

* test with destination and country code

* test shipping_rate_name is set as name

* move models

* rename models.py

* rename to be consistent with rates being plural

* move serializers

* move models

* ignore private vagrant subdir

* move code around to fix circular imports to allow top level imports

* move address serializer import to top level

* ws

* ws
2019-11-06 13:46:07 +01:00
..
.gitignore Issue 219 calculated rates base class (#230) 2019-11-06 13:46:07 +01:00
README Vagrant for local testing (#257) 2019-10-07 20:01:15 +02:00
Vagrantfile Vagrant for local testing (#257) 2019-10-07 20:01:15 +02:00
provision.sh Vagrant for local testing (#257) 2019-10-07 20:01:15 +02:00
runtox.sh Vagrant for local testing (#257) 2019-10-07 20:01:15 +02:00

README

CREATES A VAGRANT ENVIRONMENT TO FACILITATE LOCAL TESTING

========
USAGE:
========
To run tests:
    cd to this directory and then issue the following commands:
        vagrant up
        vagrant ssh
        bash /vagrant/vagrant/runtox.sh

To clean after tests run:
    rm -R /tmp/vagrant

To use django's manage.py:
    apt-get install -y python3-pip
    cd /vagrant
    pip3 install -r requirements.txt
    python3 manage.py --help

To use django's manage.py shell:
    apt-get install -y python3-pip
    cd /vagrant
    pip3 install -r requirements.txt
    python3 manage.py shell

To make migrations:
    apt-get install -y python3-pip
    cd /vagrant
    pip3 install -r requirements.txt
    python3 manage.py makemigrations

To migrate:
    apt-get install -y python3-pip
    cd /vagrant
    pip3 install -r requirements.txt
    python3 manage.py migrate

To run tests directly:
    apt-get install -y python3-pip
    cd /vagrant
    pip3 install -r requirements.txt
    pip3 install -r requirements_dev.txt
    python3 manage.py test