expenses_manager/expenses_manager/expenses/tests/test_expenses.py

42 lines
1.2 KiB
Python

import pytest
from datetime import date
from decimal import Decimal
from django.urls import reverse
from expenses.models import Expense, Category, Tag, Account
pytestmark = pytest.mark.django_db
def test_expense_can_have_tags(client, django_user_model):
user = django_user_model.objects.create_user(username='test', password='1234')
client.login(username='test', password='1234')
tag = Tag.objects.create(name='Food', owner=user)
category = Category.objects.create(name='General', owner=user)
general_account = Account.objects.create(name='General', owner=user, initial_balance=300, active=True)
expense = Expense.objects.create(
owner=user,
category=category,
amount=10,
date=date.today(),
account=general_account,
)
expense.tags.add(tag)
assert expense.tags.count() == 1
assert tag in expense.tags.all()
def test_user_can_create_tag(client, django_user_model):
user = django_user_model.objects.create_user(
username='test', password='1234'
)
client.login(username='test', password='1234')
response = client.post(
reverse('tag_create'),
{'name': 'Food'}
)
assert Tag.objects.filter(owner=user, name='Food').exists()