Compare commits
	
		
			1 Commits
		
	
	
		
			main
			...
			d7f746db0a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d7f746db0a | 
| @@ -1,11 +1,12 @@ | |||||||
| from trytond.pool import Pool | from trytond.pool import Pool | ||||||
| from . import sale_order | from . import sale_order, user | ||||||
|  |  | ||||||
| __all__ = ['register'] | __all__ = ['register'] | ||||||
|  |  | ||||||
|  |  | ||||||
| def register(): | def register(): | ||||||
|     Pool.register( |     Pool.register( | ||||||
|  |         user.UserApplication, | ||||||
|         sale_order.SaleOrder, |         sale_order.SaleOrder, | ||||||
|         sale_order.OrderLine, |         sale_order.OrderLine, | ||||||
|         module='sale_order', type_='model') |         module='sale_order', type_='model') | ||||||
|   | |||||||
							
								
								
									
										25
									
								
								routes.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								routes.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | from trytond.wsgi import app | ||||||
|  | from trytond.protocols.wrappers import ( | ||||||
|  |     with_pool, | ||||||
|  |     with_transaction, | ||||||
|  |     user_application, | ||||||
|  |     allow_null_origin) | ||||||
|  | import json | ||||||
|  |  | ||||||
|  | sale_order = user_application('sale_order') | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @app.route('/<database_name>/sale_order/order', methods=['POST']) | ||||||
|  | @allow_null_origin | ||||||
|  | @with_pool | ||||||
|  | @with_transaction() | ||||||
|  | @sale_order | ||||||
|  | def order(request, pool): | ||||||
|  |     raise Exception(request) | ||||||
|  |     Order = pool.get('sale.order') | ||||||
|  |     if request.method == 'POST': | ||||||
|  |         data = json.loads( | ||||||
|  |             request.get_data().decode() | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |         Order.create([dict(data)]) | ||||||
							
								
								
									
										53
									
								
								tests/test_api_sale_order.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								tests/test_api_sale_order.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | |||||||
|  | from trytond.tests.test_tryton import RouteTestCase | ||||||
|  | from trytond.pool import Pool | ||||||
|  | from http import HTTPStatus | ||||||
|  | import uuid | ||||||
|  | import json | ||||||
|  | from trytond.tests.test_tryton import DB_NAME | ||||||
|  | from trytond.transaction import Transaction | ||||||
|  | from trytond.modules.company.tests.tools import create_company | ||||||
|  | from trytond.tests.tools import activate_modules | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class SaleOrderApiRouteTestCase(RouteTestCase): | ||||||
|  |     """Sale Order API Routes""" | ||||||
|  |  | ||||||
|  |     module = 'sale_order' | ||||||
|  |     key = uuid.uuid4().hex | ||||||
|  |  | ||||||
|  |     @classmethod | ||||||
|  |     def setUpClass(cls): | ||||||
|  |         activate_modules('sale_order', create_company) | ||||||
|  |  | ||||||
|  |     def setUp(self): | ||||||
|  |         pool = Pool(DB_NAME) | ||||||
|  |         transaction = Transaction().start(DB_NAME, 0, _lock_tables=[ | ||||||
|  |             'product_product']) | ||||||
|  |         with transaction: | ||||||
|  |             Party = pool.get('party.party') | ||||||
|  |             ProductTemplate = pool.get('product.template') | ||||||
|  |             Product = pool.get('product.product') | ||||||
|  |             Uom = pool.get('product.uom') | ||||||
|  |             self.productTemplate, =  ProductTemplate.create([{ | ||||||
|  |                 'name': 'Product', | ||||||
|  |                 'default_uom': Uom.search([('name', '=', 'Unit')])[0].id, | ||||||
|  |             }]) | ||||||
|  |             self.product, = Product.create([ | ||||||
|  |                 {'template': self.productTemplate.id} | ||||||
|  |             ]) | ||||||
|  |  | ||||||
|  |             self.party, = Party.create([{ | ||||||
|  |                 'name': "Dunkan" | ||||||
|  |             }]) | ||||||
|  |  | ||||||
|  |     def test_post_sale_order(self): | ||||||
|  |         client = self.client() | ||||||
|  |         response = client.post( | ||||||
|  |             f'/{self.db_name}/sale_order/order', | ||||||
|  |             headers={ | ||||||
|  |                 'Authorization': f'bearer {self.key}', | ||||||
|  |             }, data=json.dumps({ | ||||||
|  |                 "party": self.party.id, | ||||||
|  |             })) | ||||||
|  |  | ||||||
|  |         self.assertEqual(response.status_code, HTTPStatus.OK) | ||||||
							
								
								
									
										14
									
								
								user.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								user.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | # This file is part of Tryton.  The COPYRIGHT file at the top level of | ||||||
|  | # this repository contains the full copyright notices and license terms. | ||||||
|  | from trytond.pool import PoolMeta | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class UserApplication(metaclass=PoolMeta): | ||||||
|  |     __name__ = 'res.user.application' | ||||||
|  |  | ||||||
|  |     @classmethod | ||||||
|  |     def __setup__(cls): | ||||||
|  |         super(UserApplication, cls).__setup__() | ||||||
|  |         cls.application.selection.append( | ||||||
|  |             ('sale_order', 'SaleOrder') | ||||||
|  |         ) | ||||||
		Reference in New Issue
	
	Block a user