Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from decimal import Decimal
- from django.test import TestCase
- from gp.dish.tests import IngredientParentTest
- class ProductViewTest(IngredientParentTest, TestCase):
- def setUp(self):
- super(ProductViewTest, self).setUp()
- def test_invoice(self):
- """
- get last 20 invoice
- /a/1/supplier/invoice/
- """
- prefix = '/a/1/supplier/invoice/'
- prefix2 = '/a/2/supplier/invoice/'
- self.c.login(username='be', password='be')
- #create data for testing
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {'name': 'SR-12349'}).content, """{"id": 1, "name": "SR-12349"}""")
- self.c.login(username='h', password='h')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix2), {'name': 'SR-44'}).content, """{"id": 2, "name": "SR-44"}""")
- self.c.logout()
- self.assertEqual(self.c.get('{prefix}?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.get('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.put('{prefix}1/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.delete('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 401)
- #fake
- self.assertEqual(self.c.get('{prefix}111/?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.put('{prefix}111/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.delete('{prefix}111/?format=json'.format(prefix=prefix)).status_code, 401)
- #logged
- self.c.login(username='be', password='be')
- #to not owned
- for prefixtmp in [prefix, prefix2,]:
- self.assertEqual(self.c.get('{prefix}2/?format=json'.format(prefix=prefixtmp)).status_code, 404)
- self.assertEqual(self.c.put('{prefix}2/?format=json'.format(prefix=prefixtmp), {'name': 'Ing'}).status_code, 404)
- self.assertEqual(self.c.delete('{prefix}2/?format=json'.format(prefix=prefixtmp)).status_code, 405)
- #to group
- self.c.login(username='as', password='as')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {'name': 's'}).status_code, 404)
- self.assertEqual(self.c.get('{prefix}1/?format=json'.format(prefix=prefix)).content, """{"id": 1, "name": "SR-12349"}""")
- self.assertEqual(self.c.put('{prefix}1/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 404)
- self.assertEqual(self.c.delete('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 405)
- #authorized
- self.c.login(username='be', password='be')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {'name': 'B6'}).content, """{"id": 3, "name": "B6"}""")
- self.assertEqual(self.c.put('{prefix}3/?format=json'.format(prefix=prefix), {'name': 'B7'}).content, """{"id": 3, "name": "B7"}""")
- self.assertEqual(self.c.delete('{prefix}3/?format=json'.format(prefix=prefix)).status_code, 405)
- self.assertEqual(self.c.get('{prefix}?format=json'.format(prefix=prefix)).content, """[{"id": 3, "name": "B7"}, {"id": 1, "name": "SR-12349"}]""")
- def test_supplier(self):
- """
- all suppliers for establishment
- /a/1/supplier/supplier/
- """
- prefix = '/a/1/supplier/'
- prefix2 = '/a/2/supplier/'
- self.c.login(username='be', password='be')
- #create data for testing
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {'name': 'SR-12349'}).content, """{"id": 1, "name": "SR-12349"}""")
- self.c.login(username='h', password='h')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix2), {'name': 'SR-44'}).content, """{"id": 2, "name": "SR-44"}""")
- self.c.logout()
- self.assertEqual(self.c.get('{prefix}?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.get('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.put('{prefix}1/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.delete('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 401)
- #fake
- self.assertEqual(self.c.get('{prefix}111/?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.put('{prefix}111/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.delete('{prefix}111/?format=json'.format(prefix=prefix)).status_code, 401)
- #logged
- self.c.login(username='be', password='be')
- #to not owned
- for prefixtmp in [prefix, prefix2,]:
- self.assertEqual(self.c.get('{prefix}2/?format=json'.format(prefix=prefixtmp)).status_code, 404)
- self.assertEqual(self.c.put('{prefix}2/?format=json'.format(prefix=prefixtmp), {'name': 'Ing'}).status_code, 404)
- self.assertEqual(self.c.delete('{prefix}2/?format=json'.format(prefix=prefixtmp)).status_code, 405)
- #to group
- self.c.login(username='as', password='as')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix)).status_code, 404)
- self.assertEqual(self.c.get('{prefix}1/?format=json'.format(prefix=prefix)).content, """{"id": 1, "name": "SR-12349"}""")
- self.assertEqual(self.c.put('{prefix}1/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 404)
- self.assertEqual(self.c.delete('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 405)
- #authorized
- self.c.login(username='be', password='be')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {'name': 'B6'}).content, """{"id": 3, "name": "B6"}""")
- self.assertEqual(self.c.put('{prefix}3/?format=json'.format(prefix=prefix), {'name': 'B7'}).content, """{"id": 3, "name": "B7"}""")
- self.assertEqual(self.c.delete('{prefix}3/?format=json'.format(prefix=prefix)).status_code, 405)
- self.assertEqual(self.c.get('{prefix}?format=json'.format(prefix=prefix)).content, """[{"id": 3, "name": "B7"}, {"id": 1, "name": "SR-12349"}]""")
- def test_product(self):
- prefix = '/a/1/supplier/ingredient/1/product/'
- prefix2 = '/a/2/supplier/ingredient/1/product/'
- self.c.login(username='be', password='be')
- #create data for testing
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {"name": "Majas kartupelis", "package": "1", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}).content, """{"id": 1, "name": "Majas kartupelis", "package": "1", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}""")
- self.c.login(username='h', password='h')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix2), {"name": "Ing 4", "package": "2", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}).content, """{"id": 2, "name": "Ing 4", "package": "2", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}""")
- self.c.logout()
- self.assertEqual(self.c.get('{prefix}?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.get('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.put('{prefix}1/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.delete('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 401)
- #fake
- self.assertEqual(self.c.get('{prefix}111/?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.put('{prefix}111/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.delete('{prefix}111/?format=json'.format(prefix=prefix)).status_code, 401)
- #logged
- self.c.login(username='be', password='be')
- #to not owned
- for prefixtmp in [prefix, prefix2,]:
- self.assertEqual(self.c.get('{prefix}2/?format=json'.format(prefix=prefixtmp)).status_code, 404)
- self.assertEqual(self.c.put('{prefix}2/?format=json'.format(prefix=prefixtmp), {'name': 'Ing'}).status_code, 404)
- self.assertEqual(self.c.delete('{prefix}2/?format=json'.format(prefix=prefixtmp)).status_code, 405)
- #to group
- self.c.login(username='as', password='as')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix)).status_code, 404)
- self.assertEqual(self.c.get('{prefix}1/?format=json'.format(prefix=prefix)).content, """{"id": 1, "name": "Majas kartupelis", "package": "1", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}""")
- self.assertEqual(self.c.put('{prefix}1/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 404)
- self.assertEqual(self.c.delete('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 405)
- #authorized
- self.c.login(username='be', password='be')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {"name": "Ing 46", "package": "2", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}).content, """{"id": 3, "name": "Ing 46", "package": "2", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}""")
- self.assertEqual(self.c.get('{prefix}3/?format=json'.format(prefix=prefix)).content, """{"id": 3, "name": "Ing 46", "package": "2", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}""")
- self.assertEqual(self.c.put('{prefix}3/?format=json'.format(prefix=prefix), {'name': 'B7', "package": "2", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}).content, """{"id": 3, "name": "B7", "package": "2", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}""")
- self.assertEqual(self.c.delete('{prefix}3/?format=json'.format(prefix=prefix)).status_code, 405)
- self.assertEqual(self.c.get('{prefix}?format=json'.format(prefix=prefix)).content, """[{"id": 3, "name": "B7", "package": "2", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}, {"id": 1, "name": "Majas kartupelis", "package": "1", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}]""")
- def test_receive(self):
- """
- last 20 receive
- """
- self.c.login(username='be', password='be')
- self.assertEqual(self.c.post('/a/1/supplier/invoice/?format=json', {'name': 'SR-12349'}).content, """{"id": 1, "name": "SR-12349"}""")
- self.assertEqual(self.c.post('/a/1/supplier/?format=json', {'name': 'SR-12349'}).content, """{"id": 1, "name": "SR-12349"}""")
- self.assertEqual(self.c.post('/a/1/supplier/ingredient/1/product/?format=json', {"name": "Majas kartupelis", "package": "1", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}).content, """{"id": 1, "name": "Majas kartupelis", "package": "1", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}""")
- self.c.login(username='h', password='h')
- self.assertEqual(self.c.post('/a/2/supplier/invoice/?format=json', {'name': 'SR-44'}).content, """{"id": 2, "name": "SR-44"}""")
- self.assertEqual(self.c.post('/a/2/supplier/?format=json', {'name': 'SR-44'}).content, """{"id": 2, "name": "SR-44"}""")
- self.assertEqual(self.c.post('/a/2/supplier/ingredient/1/product/?format=json', {"name": "Ing 4", "package": "2", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}).content, """{"id": 2, "name": "Ing 4", "package": "2", "dropout": "20", "weight": "1", "protein": "2", "fat": "0", "hydrates": "18", "calories": "77"}""")
- self.c.logout()
- prefix = '/a/1/supplier/ingredient/1/receive/'
- prefix2 = '/a/2/supplier/ingredient/1/receive/'
- prefix3 = '/a/1/supplier/ingredient/4/receive/'
- prefix4 = '/a/2/supplier/ingredient/4/receive/'
- # create test data
- self.c.login(username='be', password='be')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {"price_nopvn": "0.10656", "price": "0.13", "received": "5", "invoice": 1, "supplier": 1, "product": 1}).content,
- """{"id": 1, "price_nopvn": "0.10656", "price": "0.13", "received": "5", "left": "5", "invoice": 1, "invoice__name": "SR-12349", "supplier": 1, "product": 1}""")
- self.c.login(username='h', password='h')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix2), {"price_nopvn": "0.10656", "price": "0.13", "received": "15", "invoice": 2, "supplier": 2, "product": 2}).content,
- """{"id": 2, "price_nopvn": "0.10656", "price": "0.13", "received": "15", "left": "15", "invoice": 2, "invoice__name": "SR-44", "supplier": 2, "product": 2}""")
- self.c.logout()
- #anonymous
- self.assertEqual(self.c.get('{prefix}?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.get('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.put('{prefix}1/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.delete('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 401)
- #fake
- self.assertEqual(self.c.get('{prefix}111/?format=json'.format(prefix=prefix)).status_code, 401)
- self.assertEqual(self.c.put('{prefix}111/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 401)
- self.assertEqual(self.c.delete('{prefix}111/?format=json'.format(prefix=prefix)).status_code, 401)
- #logged
- self.c.login(username='be', password='be')
- #to not owned
- for prefixtmp in [prefix, prefix2,]:
- self.assertEqual(self.c.get('{prefix}2/?format=json'.format(prefix=prefixtmp)).status_code, 404)
- self.assertEqual(self.c.put('{prefix}2/?format=json'.format(prefix=prefixtmp), {'name': 'Ing'}).status_code, 404)
- self.assertEqual(self.c.delete('{prefix}2/?format=json'.format(prefix=prefixtmp)).status_code, 405)
- #to group
- self.c.login(username='as', password='as')
- #to foreign ingredient
- for prefixtmp in [prefix3, prefix4,]:
- self.assertEqual(self.c.get('{prefix}?format=json'.format(prefix=prefixtmp)).status_code, 404)
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefixtmp)).status_code, 404)
- self.assertEqual(self.c.get('{prefix}2/?format=json'.format(prefix=prefixtmp)).status_code, 404)
- self.assertEqual(self.c.put('{prefix}2/?format=json'.format(prefix=prefixtmp), {'name': 'Ing'}).status_code, 404)
- self.assertEqual(self.c.delete('{prefix}2/?format=json'.format(prefix=prefixtmp)).status_code, 405)
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix)).status_code, 404)
- self.assertEqual(self.c.get('{prefix}1/?format=json'.format(prefix=prefix)).content, """{"id": 1, "price_nopvn": "0.10656", "price": "0.13", "received": "5", "left": "5", "invoice": 1, "invoice__name": "SR-12349", "supplier": 1, "product": 1}""")
- self.assertEqual(self.c.put('{prefix}1/?format=json'.format(prefix=prefix), {'name': 'Ing'}).status_code, 404)
- self.assertEqual(self.c.delete('{prefix}1/?format=json'.format(prefix=prefix)).status_code, 405)
- #authorized
- self.c.login(username='be', password='be')
- self.assertEqual(self.c.post('{prefix}?format=json'.format(prefix=prefix), {"price_nopvn": "0.10656", "price": "0.13", "received": "3", "invoice": 1, "supplier": 1, "product": 1}).content, """{"id": 3, "price_nopvn": "0.10656", "price": "0.13", "received": "3", "left": "3", "invoice": 1, "invoice__name": "SR-12349", "supplier": 1, "product": 1}""")
- self.assertEqual(self.c.put('{prefix}3/?format=json'.format(prefix=prefix), {"price_nopvn": "0.10656", "price": "0.13", "received": "3", "left": "2", "invoice": 1, "supplier": 1, "product": 1}).content, """{"id": 3, "price_nopvn": "0.10656", "price": "0.13", "received": "3", "left": "2", "invoice": 1, "invoice__name": "SR-12349", "supplier": 1, "product": 1}""")
- self.assertEqual(self.c.delete('{prefix}3/?format=json'.format(prefix=prefix)).status_code, 405)
- self.assertEqual(self.c.get('{prefix}?format=json'.format(prefix=prefix)).content, """[{"id": 3, "price_nopvn": "0.10656", "price": "0.13", "received": "3", "left": "2", "invoice": 1, "invoice__name": "SR-12349", "supplier": 1, "product": 1}, {"id": 1, "price_nopvn": "0.10656", "price": "0.13", "received": "5", "left": "5", "invoice": 1, "invoice__name": "SR-12349", "supplier": 1, "product": 1}]""")
- #with foreign error keys
- self.assertContains(self.c.post('{prefix}?format=json'.format(prefix=prefix), {"price_nopvn": "0.10656", "price": "0.13", "received": "3", "invoice": 2, "supplier": 1, "product": 1}), """{"errors": {"invoice": ["Izv\u0113laties pareizu izv\u0113li. J\u016bsu izv\u0113lele neietilpst pieejamo sarakst\u0101."]}}""", status_code=400)
- self.assertContains(self.c.post('{prefix}?format=json'.format(prefix=prefix), {"price_nopvn": "0.10656", "price": "0.13", "received": "3", "invoice": 1, "supplier": 2, "product": 1}), """{"errors": {"supplier": ["Izv\u0113laties pareizu izv\u0113li. J\u016bsu izv\u0113lele neietilpst pieejamo sarakst\u0101."]}}""", status_code=400)
- self.assertContains(self.c.post('{prefix}?format=json'.format(prefix=prefix), {"price_nopvn": "0.10656", "price": "0.13", "received": "3", "invoice": 1, "supplier": 1, "product": 2}), """{"errors": {"product": ["Izv\u0113laties pareizu izv\u0113li. J\u016bsu izv\u0113lele neietilpst pieejamo sarakst\u0101."]}}""", status_code=400)
- self.assertContains(self.c.post('{prefix}?format=json'.format(prefix=prefix), {"price_nopvn": "0.10656", "price": "0.13", "received": "3", "invoice": 2, "supplier": 2, "product": 2}), """{"errors": {"invoice": ["Izv\u0113laties pareizu izv\u0113li. J\u016bsu izv\u0113lele neietilpst pieejamo sarakst\u0101."], "supplier": ["Izv\u0113laties pareizu izv\u0113li. J\u016bsu izv\u0113lele neietilpst pieejamo sarakst\u0101."], "product": ["Izv\u0113laties pareizu izv\u0113li. J\u016bsu izv\u0113lele neietilpst pieejamo sarakst\u0101."]}}""", status_code=400)
Add Comment
Please, Sign In to add comment