Example #1
0
 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()
Example #2
0
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')
Example #3
0
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)