Commit graph

91 commits

Author SHA1 Message Date
Christopher Neugebauer
3517bdd281 Makes sure that discounts always apply to the most expensive product in the cart first. Adds test to that effect.
Fixes #88.
2016-09-15 16:01:49 +10:00
Christopher Neugebauer
2c8ed9a51a Adds test for GroupMemberCondition 2016-09-15 15:33:43 +10:00
Christopher Neugebauer
d4f4312178 Adds cancellation fee implementation and tests 2016-09-15 12:15:40 +10:00
Christopher Neugebauer
fd9980efc5 Makes sure we only apply unclaimed credit notes when auto-applying credit notes. 2016-09-15 11:41:50 +10:00
Christopher Neugebauer
77a7689de5 Fixes credit note tests that were broken with the old behaviour 2016-09-15 11:28:14 +10:00
Christopher Neugebauer
5fce13d386 Simplifies credit note tests 2016-09-15 11:28:14 +10:00
Christopher Neugebauer
04b7a7998c Tests correct behaviour when there are multiple credit notes to be applied 2016-09-15 11:28:14 +10:00
Christopher Neugebauer
05c5cfcb4e Adds first tests for automatic credit note application 2016-09-15 10:03:27 +10:00
Christopher Neugebauer
66f423eafa Moves tests for credit note functionality into its own test module 2016-09-15 09:38:42 +10:00
Christopher Neugebauer
23658be49a Starts test_helpers.py, so we can get credit note testing stuff into its own module. 2016-09-15 09:29:31 +10:00
Christopher Neugebauer
6469bcd8e7 Adds test for manual invoicing 2016-09-15 09:08:57 +10:00
Christopher Neugebauer
1128e43150 Adds test for GroupMemberCondition — it fails, obviously. 2016-09-05 10:45:09 +10:00
Christopher Neugebauer
af30063a92 Adds final test, all three now pass. 2016-09-04 14:00:56 +10:00
Christopher Neugebauer
0b306fd59e Adds test for user being a primary presenter of a proposal 2016-09-04 13:41:49 +10:00
Christopher Neugebauer
786bc0324a Stubs out tests for test_speaker 2016-09-04 13:17:56 +10:00
Christopher Neugebauer
9134fa5ed2 Initial version of test_speaker, which creates all of the boilerplate for proposals 2016-09-04 13:11:45 +10:00
Christopher Neugebauer
43649002cb Makes ProductCondition work if you have both valid and cancelled instances of a product. Fixes #68 2016-09-03 16:18:27 +10:00
Christopher Neugebauer
8e1f799513 Test case for issue #68 2016-09-03 16:11:28 +10:00
Christopher Neugebauer
1e6c90163d Fixes #64 2016-09-03 11:46:24 +10:00
Christopher Neugebauer
cdc6e229dc Etc (squash. srsly) 2016-09-03 11:31:39 +10:00
Christopher Neugebauer
0329ee7bb2 Amends test to test *both* paths for validating invoices. 2016-09-03 11:11:44 +10:00
Christopher Neugebauer
5a7819b0d7 Test for issue 64 2016-09-03 11:07:46 +10:00
Christopher Neugebauer
64ca477cb8 Fixes flake8 snafus 2016-09-02 11:43:27 +10:00
Christopher Neugebauer
4f16e4b9d0 Oops. 2016-08-21 18:28:16 +10:00
Christopher Neugebauer
7bf372f92a Invoices now send e-mails when created, paid, or refunded. 2016-08-21 17:14:19 +10:00
Christopher Neugebauer
924906d38c Adds test for e-mails being sent when invoices are generated. 2016-08-21 16:56:15 +10:00
Christopher Neugebauer
155f6d42d9 Renames patch_datetime to patches, adds e-mail patching bits 2016-08-21 16:39:57 +10:00
Christopher Neugebauer
3717adb262 Squash this and last two 2016-05-01 14:56:46 +10:00
Christopher Neugebauer
ad2de6e9d4 Breaks cart batching tests into multiple tests 2016-05-01 14:56:46 +10:00
Christopher Neugebauer
94ceaa3bb1 Adds test case for CartController batching 2016-05-01 14:56:46 +10:00
Christopher Neugebauer
3db1256895 Adds test for end_batch functionality 2016-05-01 14:56:45 +10:00
Christopher Neugebauer
27ab44ec44 test cases for memoisation 2016-05-01 10:47:15 +10:00
Christopher Neugebauer
eb29e7cd09 Adds test cases for basic batch cacheing behaviour 2016-05-01 10:47:06 +10:00
Christopher Neugebauer
02fe88a4e4 Tests and fixes for a bug where discount quantities did not respect per-line item quantities. 2016-04-29 11:11:59 +10:00
Christopher Neugebauer
162db24817 Flake8 fixes 2016-04-29 11:08:45 +10:00
Christopher Neugebauer
71de0df5dc Makes DiscountController a class and puts available_discounts inside it 2016-04-29 11:08:42 +10:00
Christopher Neugebauer
3f1be0e14e Rearchitected condition processing such that multiple conditions are processed by the database, in bulk. Closes #42. 2016-04-29 11:06:58 +10:00
Christopher Neugebauer
7ccfaed304 Removes line that forces segfault avoidance 2016-04-25 18:50:09 +10:00
Christopher Neugebauer
4cdbdb71ce flake8 fixes 2016-04-25 17:37:33 +10:00
Christopher Neugebauer
b709da97f1 Checks that required category constraints are met before letting you check out your cart.
Closes #35
2016-04-25 17:13:58 +10:00
Christopher Neugebauer
e2687cfa6f Stops testing using ManualPayment, and just uses PaymentBase instead 2016-04-25 16:45:42 +10:00
Christopher Neugebauer
397ba207bb Adds utility to defeat segfaults in tests. Hopefully you won’t need it. 2016-04-25 15:36:55 +10:00
Christopher Neugebauer
63dfd353c1 Replaces active/released flags in Cart with a single int flag. Closes #41 2016-04-25 15:36:55 +10:00
Christopher Neugebauer
12e04c248f Credit notes are now generated when invoices are overpaid, or invoices are paid into void or refunded invoices. Closes #37. 2016-04-25 08:26:54 +10:00
Christopher Neugebauer
9a4574ef2c DRYs up test_invoice a bit 2016-04-25 08:25:19 +10:00
Christopher Neugebauer
ca8f67c2f3 Adds for_id, which lets you get an InvoiceController or CreditNoteController by the ID of the invoice/credit note/. Closes #38. 2016-04-25 07:20:41 +10:00
Christopher Neugebauer
875f736d67 Consolidates models.py into a directory module. 2016-04-22 15:06:24 +10:00
Christopher Neugebauer
c24b9ee213 Makes EnablingConditionBase a minimal reification of an abstract base model FlagBase, replaces enablingconditionbase with flagbase where possible, and fixes method names and documentation 2016-04-12 08:42:22 +10:00
Christopher Neugebauer
638ec26126 Replaces the mandatory/non-mandatory concept with the enabled_if_true/disabled_if_false concept. Closes #4. 2016-04-11 20:48:18 +10:00
Christopher Neugebauer
e88a287fef renames test_enabling_condition to test_flag 2016-04-11 17:59:20 +10:00