Commit graph

93 commits

Author SHA1 Message Date
Christopher Neugebauer
4a50d69936 Moves total_payments() to Invoice model; adds balance_due() 2016-09-16 09:35:12 +10:00
Christopher Neugebauer
fc81f107ed When setting quantities on products, only raise errors if they’re due to changes made during the current call to set_quantities.
Fixes #54
2016-09-15 16:33:19 +10:00
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