def setUp(self): self.cat1 = Category(name="cat1") self.cat1.save() self.cat2 = Category(name="cat2") self.cat2.save() CategoryMapping(matcher=u"^Something", category=self.cat1).save() CategoryMapping(matcher=u"Räksmörgås", category=self.cat2).save()
def edit_category(request, action=None, id=None): if request.method == 'GET': if action == 'remove' and id: cat = Category.objects.get(id=id) cat.delete() return redirect('transactions:view-categories') elif action == 'add': c = Category(name=request.GET.get('new_cat')) c.save() # print(c) return redirect('transactions:view-categories')
class TransactionTests(TestCase): def setUp(self): self.cat1 = Category(name="cat1") self.cat1.save() self.cat2 = Category(name="cat2") self.cat2.save() CategoryMapping(matcher=u"^Something", category=self.cat1).save() CategoryMapping(matcher=u"Räksmörgås", category=self.cat2).save() def given_a_transaction(self, text): t = Transaction(transaction_date=date.today(), currency_date=date.today(), reference=0, account_id=0, value=0, text=text) return t def test_auto_tag_match(self): t = self.given_a_transaction(u"Something that matches") t.auto_tag() self.assertEqual(t.category, self.cat1) def test_auto_tag_unanchored_matches_middle(self): t = self.given_a_transaction(u"With a räksmörgås in the middle") t.auto_tag() self.assertEqual(t.category, self.cat2) def test_auto_tag_anchored_doesnt_match_middle(self): t = self.given_a_transaction(u"With a something in the middle") t.auto_tag() self.assertEqual(t.category, None) def test_auto_tag_match_case_insensitive(self): t = self.given_a_transaction(u"RÄKSMÖRGÅS that matches") t.auto_tag() self.assertEqual(t.category, self.cat2) def test_auto_tag_no_match(self): t = self.given_a_transaction(u"Nothing that matches") t.auto_tag() self.assertEqual(t.category, None) def test_auto_tag_multiple_matches_fail(self): t = self.given_a_transaction(u"Something that matches räksmörgås") self.assertRaises(ValidationError, t.auto_tag)