def test_post_list_send_user_no_effect(self): """ Sending "user" property should have no effect. It must use the logged-in user. """ # Check how many are there first. self.assertEqual( BaseCategoryRestriction.objects.filter(user=self.user).count(), 2) # creating a new category to avoid unique clash category = CategoryFactory.create() post_data = { 'value': Decimal(-350), 'category': '/api/v1/category/%d' % category.id, 'user': 2 } resp = self.api_client.post(self.get_list_url(), format='json', data=post_data, authentication=self.get_credentials()) self.assertHttpCreated(resp) self.assertEqual( BaseCategoryRestriction.objects.filter(user=self.user).count(), 3)
def setUp(self): super(MonthleRestrictionResourceTest, self).setUp() self.categories = CategoryFactory.create_batch(2) base_1 = BaseCategoryRestrictionFactory.create( user=self.user, category=self.categories[0], value=Decimal('-100')) base_2 = BaseCategoryRestrictionFactory.create( user=self.user, category=self.categories[1], value=Decimal('-200')) self.base_restriction = base_1 restriction1 = MonthlyCategoryRestrictionFactory.create( baserestriction=base_1, month=datetime.date(2010, 10, 1)) restriction2 = MonthlyCategoryRestrictionFactory.create( baserestriction=base_2, month=datetime.date(2010, 10, 1)) self.restriction = restriction1 # creating a restriction for another user self.another_base_restriction = BaseCategoryRestrictionFactory.create( user=self.another_user, category=self.categories[1], value=Decimal('-200')) self.another_restriction = MonthlyCategoryRestrictionFactory.create( baserestriction=self.another_base_restriction, month=datetime.date(2010, 10, 10))
def test_signal_multi_users_and_categs(self): base1 = BaseRestrictionFactory.create() user1 = base1.user categ1 = base1.category user = UserFactory.create(email='*****@*****.**') cg = CategoryGroupFactory.create(name='noog') categ = CategoryFactory.create(name='nooo', group=cg) base = BaseRestrictionFactory.create(user=user, category=categ, value=50) t = expenses.models.Transaction(value=10, user=user, category=categ, date=datetime.date(2013, 12, 23)) t.save() t = expenses.models.Transaction(value=23, user=user, category=categ, date=datetime.date(2013, 12, 11)) t.save() self.assertNotEquals(base1, base) self.assertNotEquals(categ1, categ) self.assertNotEquals(user1, user) self.assertEquals(MonthlyCategoryRestriction.objects.count(), 1) mr = MonthlyCategoryRestriction.objects.get() self.assertEquals(mr.month, datetime.date(2013, 12, 1)) self.assertEquals(mr.value, base.value) self.assertEquals(mr.baserestriction, base)
def test_post_list(self): # Check how many are there first. self.assertEqual(BaseCategoryRestriction.objects.filter(user=self.user).count(), 2) # creating a new category to avoid unique clash category = CategoryFactory.create() post_data = { 'value': Decimal(-350), 'category': '/api/v1/category/%d' % category.id } resp = self.api_client.post(self.get_list_url(), format='json', data=post_data, authentication=self.get_credentials()) self.assertHttpCreated(resp) content = self.deserialize(resp) self.assertEquals(content, { u'category': {u'group': u'category group %d' % category.group_id, u'id': category.pk, u'is_negative': True, u'name': u'category %d' % category.pk, u'position': 1, u'resource_uri': u'/api/v1/category/%d' % category.pk}, u'id': 4, u'value': u'-350', u'resource_uri': u'/api/v1/threshold/category/4' }) self.assertEqual(BaseCategoryRestriction.objects.filter(user=self.user).count(), 3)
def setUp(self): super(RestrictionResourceTest, self).setUp() group = CategoryGroupFactory.create() self.categories = CategoryFactory.create_batch(2, group=group) self.restriction = BaseCategoryRestrictionFactory.create(user=self.user, category=self.categories[0], value=Decimal('-100')) BaseCategoryRestrictionFactory.create(user=self.user, category=self.categories[1], value=Decimal('-200')) # creating a restriction for another user self.another_restriction = BaseCategoryRestrictionFactory.create(user=self.another_user, category=self.categories[1], value=Decimal('-200'))
def test_signal_skip_empty_base(self): user = UserFactory.create(email='*****@*****.**') cg = CategoryGroupFactory.create(name='noog') categ = CategoryFactory.create(name='nooo', group=cg) t = expenses.models.Transaction(value=10, user=user, category=categ, date=datetime.date(2013, 12, 23)) t.save() t = expenses.models.Transaction(value=23, user=user, category=categ, date=datetime.date(2013, 12, 11)) t.save() self.assertEquals(MonthlyCategoryRestriction.objects.count(), 0)
def test_unique_base_restriction(self): user = UserFactory.create() category = CategoryFactory.create() restr = BaseCategoryRestriction() restr.user = user restr.category = category restr.value = 123.45 restr.save() restr2 = BaseCategoryRestriction() restr2.user = user restr2.category = category restr.value = 2231.11 self.assertRaises(django.db.IntegrityError, restr2.save)
def setUp(self): super(MonthleRestrictionResourceTest, self).setUp() self.categories = CategoryFactory.create_batch(2) base_1 = BaseCategoryRestrictionFactory.create(user=self.user, category=self.categories[0], value=Decimal('-100')) base_2 = BaseCategoryRestrictionFactory.create(user=self.user, category=self.categories[1], value=Decimal('-200')) self.base_restriction = base_1 restriction1 = MonthlyCategoryRestrictionFactory.create(baserestriction=base_1, month=datetime.date(2010, 10, 1)) restriction2 = MonthlyCategoryRestrictionFactory.create(baserestriction=base_2, month=datetime.date(2010, 10, 1)) self.restriction = restriction1 # creating a restriction for another user self.another_base_restriction = BaseCategoryRestrictionFactory.create(user=self.another_user, category=self.categories[1], value=Decimal('-200')) self.another_restriction = MonthlyCategoryRestrictionFactory.create(baserestriction=self.another_base_restriction, month=datetime.date(2010, 10, 10))
def setUp(self): super(RestrictionResourceTest, self).setUp() group = CategoryGroupFactory.create() self.categories = CategoryFactory.create_batch(2, group=group) self.restriction = BaseCategoryRestrictionFactory.create( user=self.user, category=self.categories[0], value=Decimal('-100')) BaseCategoryRestrictionFactory.create(user=self.user, category=self.categories[1], value=Decimal('-200')) # creating a restriction for another user self.another_restriction = BaseCategoryRestrictionFactory.create( user=self.another_user, category=self.categories[1], value=Decimal('-200'))
def test_post_list_send_user_no_effect(self): """ Sending "user" property should have no effect. It must use the logged-in user. """ # Check how many are there first. self.assertEqual(BaseCategoryRestriction.objects.filter(user=self.user).count(), 2) # creating a new category to avoid unique clash category = CategoryFactory.create() post_data = { 'value': Decimal(-350), 'category': '/api/v1/category/%d' % category.id, 'user': 2 } resp = self.api_client.post(self.get_list_url(), format='json', data=post_data, authentication=self.get_credentials()) self.assertHttpCreated(resp) self.assertEqual(BaseCategoryRestriction.objects.filter(user=self.user).count(), 3)
def test_post_list(self): # Check how many are there first. self.assertEqual( BaseCategoryRestriction.objects.filter(user=self.user).count(), 2) # creating a new category to avoid unique clash category = CategoryFactory.create() post_data = { 'value': Decimal(-350), 'category': '/api/v1/category/%d' % category.id } resp = self.api_client.post(self.get_list_url(), format='json', data=post_data, authentication=self.get_credentials()) self.assertHttpCreated(resp) content = self.deserialize(resp) self.assertEquals( content, { u'category': { u'group': u'category group %d' % category.group_id, u'id': category.pk, u'is_negative': True, u'name': u'category %d' % category.pk, u'position': 1, u'resource_uri': u'/api/v1/category/%d' % category.pk }, u'id': 4, u'value': u'-350', u'resource_uri': u'/api/v1/threshold/category/4' }) self.assertEqual( BaseCategoryRestriction.objects.filter(user=self.user).count(), 3)