From d3f616ace08c3a3321fbedb0c0450b11bb223b89 Mon Sep 17 00:00:00 2001 From: keylor2906 Date: Wed, 26 Apr 2017 18:28:50 -0500 Subject: [PATCH 1/2] [ADD] selenium_test: added the option name to make dynamic when you need to resume or close a POS session, and not only one static user --- odoo-scripts/selenium_test.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/odoo-scripts/selenium_test.py b/odoo-scripts/selenium_test.py index cfdaa4d..c169de0 100644 --- a/odoo-scripts/selenium_test.py +++ b/odoo-scripts/selenium_test.py @@ -19,6 +19,7 @@ def __init__(self, **args): self.driver.implicitly_wait(15) self.product = args.get('product') self.partner = args.get('partner') + self.name = args.get('name') self.driver.get( '%(server)s/' 'login?db=%(db)s&' @@ -410,8 +411,8 @@ def go_to_pos_form(self): "$('a.o_app div:contains(Punto de Venta)').click()") time.sleep(5) driver.execute_script( - "$('div.o_kanban_record:contains(Tadeo) " - "button:contains(Reanudar)').click()") + "$('div.o_kanban_record:contains(%s) " + "button:contains(Reanudar)').click()" % self.name) driver.execute_script( "$('div.o_kanban_record:contains(Test Admin) " "button:contains(Nueva sesión)').click()") @@ -473,8 +474,8 @@ def close_session(self): "$('div.header-button:contains(Confirmar)').click()") raw_input('Press Enter after the POS is closed') driver.execute_script( - "$('div.o_kanban_record:contains(Tadeo) " - "button:contains(Cerrar)').click()") + "$('div.o_kanban_record:contains(%s) " + "button:contains(Cerrar)').click()" % self.name) time.sleep(6) driver.execute_script( "$('button:contains(Validar y contabilizar asiento):" @@ -824,7 +825,11 @@ def confirm_sale(self): default='', prompt='Company', help='Company which the test is going to run the test') -def main(server, user, password, db, com): +@click.option('-name', + default='', + prompt='Name', + help='Name of user who is going to run the test') +def main(server, user, password, db, com, name): classes_dict = { 'apex': 'SaleTestApex', 'lodi': 'SaleTestLodi', @@ -854,7 +859,8 @@ def main(server, user, password, db, com): 'password': password, 'db': db, 'partner': partner.get(com), - 'product': product.get(com) + 'product': product.get(com), + 'name': name } lodi_list = ['go_to_sale_form', 'fill_form', 'go_to_pickings', From 06fa3ac90f4b28e76f31710cf453b5c7e775714e Mon Sep 17 00:00:00 2001 From: keylor2906 Date: Fri, 28 Apr 2017 23:55:17 +0000 Subject: [PATCH 2/2] [ADD] selenium_test: added tests for creation of products, delivery methods and promotion programs --- odoo-scripts/selenium_test.py | 202 +++++++++++++++++++++++++++++++++- 1 file changed, 196 insertions(+), 6 deletions(-) diff --git a/odoo-scripts/selenium_test.py b/odoo-scripts/selenium_test.py index c169de0..a9e96d1 100644 --- a/odoo-scripts/selenium_test.py +++ b/odoo-scripts/selenium_test.py @@ -696,7 +696,7 @@ def fill_checkout_form(self): "$('input[name=zip]').val('37187')") time.sleep(1) driver.execute_script( - "$('select[name=state_id] option:contains(Aguascalientes)')." + "$('select[name=state_id] option:contains(Nuevo León)')." "prop('selected', true)") def process_checkout(self): @@ -756,7 +756,7 @@ def fill_shipment_form(self): "prop('selected', true)") def go_to_sale_quotation(self): - """ + """Method used to move us from main window to view for quotations """ driver = self.driver time.sleep(10) @@ -777,8 +777,8 @@ def go_to_sale_quotation(self): "td[data-field=name]')[0].click()") def confirm_sale(self): - """ - """ + """Method to confirm the sale of the quotation created + by the client via website""" driver = self.driver time.sleep(6) driver.execute_script( @@ -803,6 +803,192 @@ def confirm_sale(self): "$('button:contains(Confirmar venta):" "not(.o_form_invisible)').click()") + def go_to_product_form(self): + """Method used to move us from main window to view for products + """ + driver = self.driver + time.sleep(2) + driver.execute_script( + "$('a.o_app div:contains(Ventas)').click()") + time.sleep(5) + driver.execute_script( + "$('a.dropdown-toggle:contains(Ventas)').click()") + time.sleep(2) + driver.execute_script( + "$('a.o_menu_entry_lvl_2:contains(Productos):" + "not(.oe_kanban_action)').click()") + time.sleep(2) + driver.execute_script( + "$('button:contains(Crear)').click()") + + def fill_product_form(self): + """Fill the form for a new product + """ + driver = self.driver + time.sleep(2) + driver.execute_script( + "$('input[placeholder=\"Nombre del Producto\"]')" + ".val('Producto prueba')") + time.sleep(2) + driver.execute_script( + "$('select[name=type] option:contains(Producto Almacenable)')" + ".prop('selected', true)") + time.sleep(2) + driver.execute_script( + "$('input.o_form_radio[value=order]').click()") + time.sleep(2) + driver.execute_script( + "$('tr:contains(Precio de venta) input').val('35.00')") + time.sleep(2) + driver.execute_script( + "$('tr:contains(Coste) input').val('17.50')") + time.sleep(2) + driver.execute_script( + "$('a:contains(Inventario)').click()") + time.sleep(1) + driver.execute_script( + "$('input[data-record-id=18]').click()") + time.sleep(1) + driver.execute_script( + "$('input[data-record-id=19]').click()") + time.sleep(2) + driver.execute_script( + "$('a:contains(Contabilidad)').click()") + time.sleep(1) + driver.execute_script( + "$('tr:contains(Impuestos del Cliente) input')." + "val('16% IVA de Ventas').keydown()") + time.sleep(1) + driver.execute_script( + "$('li a:contains(16% IVA de Ventas):" + "not(:contains(Crear))').click()") + time.sleep(1) + driver.execute_script( + "$('tr:contains(Impuestos de Proveedor) input')." + "val('16% IVA de Compra').keydown()") + time.sleep(1) + driver.execute_script( + "$('li a:contains(16% IVA de Compra):" + "not(:contains(Crear))').click()") + time.sleep(2) + driver.execute_script( + "$('button.o_form_button_save').click()") + + def go_to_promotion_form(self): + """Method used to move us from main window to view for promotions + """ + driver = self.driver + time.sleep(4) + driver.execute_script( + "$('a.o_app div:contains(Ventas)').click()") + time.sleep(5) + driver.execute_script( + "$('a.dropdown-toggle:contains(Configuración)').click()") + time.sleep(2) + driver.execute_script( + "$('a.o_menu_entry_lvl_3:contains(Programa de promoción):" + "not(.oe_kanban_action)').click()") + time.sleep(2) + driver.execute_script( + "$('button:contains(Crear)').click()") + + def fill_promotion_form(self): + """Fill the form for a new promotion + """ + driver = self.driver + time.sleep(2) + driver.execute_script( + "$('div:contains(Nombre del programa) " + "input.oe_title').val('Promoción prueba')") + time.sleep(2) + driver.execute_script( + "$('input[name=is_public_included]').click()") + time.sleep(2) + driver.execute_script( + "$('input[value=code_needed]').click()") + time.sleep(2) + driver.execute_script( + "$('tr:contains(Código de promoción) input')." + "val('PR0M0-C0D3')") + time.sleep(2) + driver.execute_script( + "$('td:contains(Producto de linea):not(:contains(Reference))')" + ".next().find('input').val('discount').keydown()") + time.sleep(1) + driver.execute_script( + "$('a:contains(discount):" + "not(:contains(Crear))').click()") + time.sleep(2) + driver.execute_script( + "$('tr:contains(Aplicar descuento) input')" + ".val('25.00')") + time.sleep(2) + driver.execute_script( + "$('button.o_form_button_save').click()") + + def go_to_delivery_method_form(self): + """Method used to move us from main window + to view for delivery method""" + driver = self.driver + time.sleep(4) + driver.execute_script( + "$('a.o_app div:contains(Ventas)').click()") + time.sleep(5) + driver.execute_script( + "$('a.dropdown-toggle:contains(Configuración)').click()") + time.sleep(2) + driver.execute_script( + "$('a.o_menu_entry_lvl_3:contains(Métodos de Entrega):" + "not(.oe_kanban_action)').click()") + time.sleep(2) + driver.execute_script( + "$('button:contains(Crear)').click()") + + def fill_delivery_method_form(self): + """Fill the form for a new delivery method + """ + driver = self.driver + time.sleep(5) + driver.execute_script( + "$('div:contains(Nombre) h1 input')." + "val('Entrega de Prueba')") + time.sleep(2) + driver.execute_script( + "$('tr:contains(Compañía de transporte) input')." + "val('VECO CAPITAL S.A. de C.V.').keydown()") + time.sleep(1) + driver.execute_script( + "$('li.ui-menu-item a')[0].click()") + time.sleep(2) + driver.execute_script( + "$('tr:contains(Precio fijo) input').val(99.99)") + time.sleep(1) + driver.execute_script( + "$('a:contains(Destino)').click()") + time.sleep(2) + driver.execute_script( + "$('tr:contains(Países) input')." + "val('México').keydown()") + time.sleep(1) + driver.execute_script( + "$('a:contains(México):" + "not(:contains(Crear))').click()") + time.sleep(2) + driver.execute_script( + "$('tr:contains(Estado) input')." + "val('Nuevo León').keydown()") + time.sleep(1) + driver.execute_script( + "$('a:contains(Nuevo León):" + "not(:contains(Crear))').click()") + time.sleep(2) + driver.execute_script( + "$('button.o_form_button_save').click()") + time.sleep(2) + driver.execute_script( + "$('div.fa-globe').click()") + + @click.command() @click.option('-server', @@ -873,8 +1059,12 @@ def main(server, user, password, db, com, name): 'go_to_sale_form', 'fill_form', 'create_invoice', 'go_to_pickings', 'validate_out', 'add_to_cart', 'fill_checkout_form', 'process_checkout', - 'go_to_sale_quotation', 'confirm_sale', 'create_invoice', - 'go_to_pickings', 'validate_out'], + 'go_to_sale_quotation', 'confirm_sale', + 'create_invoice', 'go_to_pickings', 'validate_out', + 'go_to_product_form', 'fill_product_form', + 'go_to_delivery_method_form', + 'fill_delivery_method_form', + 'go_to_promotion_form', 'fill_promotion_form'], 'lodi': lodi_list, 'apex': lodi_list, 'exim': exim_list,