diff --git a/bemade_fsm/static/tests/tours/equipment_tour.js b/bemade_fsm/static/tests/tours/equipment_tour.js
index ffbb958..a07dce6 100644
--- a/bemade_fsm/static/tests/tours/equipment_tour.js
+++ b/bemade_fsm/static/tests/tours/equipment_tour.js
@@ -2,7 +2,7 @@
import tour from 'web_tour.tour';
-const TEST_COMPANY = "Test Partner Company";
+const TEST_COMPANY = "Test Partner";
const TEST_EQPT1 = "Test Equipment 1";
const TEST_EQPT2 = "Test Equipment 2";
tour.register('equipment_base_tour', {
@@ -21,7 +21,6 @@ tour.register('equipment_base_tour', {
}, {
content: 'Click the create button',
trigger: '.o_list_button_add',
- extra_trigger: 'li.breadcrumb-item.active:has(span:contains(Equipment))',
}, {
content: 'Add a tag',
trigger: 'input[name="pid_tag"]',
@@ -33,13 +32,13 @@ tour.register('equipment_base_tour', {
}, {
content: 'Set the partner',
trigger: 'div[name="partner_location_id"] div div input',
- run: 'text Test Partner Company',
+ run: `text ${TEST_COMPANY}`,
}, {
content: 'Click the partner in the dropdown',
trigger: `li a.dropdown-item:contains(${TEST_COMPANY})`,
}, {
content: 'Save equipment',
- trigger: 'button.o_form_button_save',
+ trigger: 'button.o_list_button_save',
}, {
/* Navigate to the client and make sure that there are two equipments saved (one from the Python test case) */
content: 'Navigate to the Clients submenu',
@@ -65,7 +64,6 @@ tour.register('equipment_base_tour', {
extra_trigger: `h1 span.o_field_partner_autocomplete[name="name"]:contains(${TEST_COMPANY})`,
}, {
content: 'Make sure we have a first test equipment',
- /*trigger: `div[name="equipment_ids"]:has(td:contains(${TEST_EQPT1}))`,*/
trigger: `td:contains(${TEST_EQPT1})`,
run: function () {
},
diff --git a/bemade_fsm/static/tests/tours/sale_order_tour.js b/bemade_fsm/static/tests/tours/sale_order_tour.js
index 86b3849..6ea8eee 100644
--- a/bemade_fsm/static/tests/tours/sale_order_tour.js
+++ b/bemade_fsm/static/tests/tours/sale_order_tour.js
@@ -25,10 +25,10 @@ tour.register('sale_order_tour', {
}, {
content: 'Click the view tasks button',
trigger: 'button[name="action_view_task"]',
- }, {
+ }, /*{
content: 'Click the first task',
trigger: `div.o_kanban_record:has(span:contains(${PRODUCT_NAME}))`,
- }, {
+ },*/ {
content: 'Click on the ready to invoice button',
trigger: 'button[name="action_fsm_validate"]',
extra_trigger: `li.breadcrumb-item.active:has(span:contains(${PRODUCT_NAME}))`
diff --git a/bemade_fsm/static/tests/tours/task_equipment_tour.js b/bemade_fsm/static/tests/tours/task_equipment_tour.js
index 4599fb5..f8a244d 100644
--- a/bemade_fsm/static/tests/tours/task_equipment_tour.js
+++ b/bemade_fsm/static/tests/tours/task_equipment_tour.js
@@ -38,7 +38,7 @@ tour.register('task_equipment_tour', {
trigger: `li a.dropdown-item:contains(${TEST_COMPANY})`,
}, {
content: 'Save equipment',
- trigger: 'button.o_form_button_save',
+ trigger: 'button.o_list_button_save',
}, {
/* Navigate to the client and make sure that there are two equipments saved (one from the Python test case) */
content: 'Navigate to the Clients submenu',
diff --git a/bemade_fsm/tests/test_bemade_fsm_common.py b/bemade_fsm/tests/test_bemade_fsm_common.py
index e186410..9fcab99 100644
--- a/bemade_fsm/tests/test_bemade_fsm_common.py
+++ b/bemade_fsm/tests/test_bemade_fsm_common.py
@@ -7,24 +7,21 @@ class BemadeFSMBaseTest(TransactionCase):
@classmethod
def _generate_project_manager_user(cls, name, login):
- user_group_employee = cls.env.ref('base.group_user')
- user_group_project_user = cls.env.ref('project.group_project_user')
+ group_ids = cls.__get_user_groups()
user_group_project_manager = cls.env.ref('project.group_project_manager')
- user_group_fsm_user = cls.env.ref('industry_fsm.group_fsm_user')
user_group_fsm_manager = cls.env.ref('industry_fsm.group_fsm_manager')
- user_group_sales_manager = cls.env.ref('sales_team.group_sale_manager')
- user_group_sales_user = cls.env.ref('sales_team.group_sale_salesman')
- user_product_customer = cls.env.ref('customer_product_code.group_product_customer_code_user')
+ group_ids.append(user_group_fsm_manager.id)
+ group_ids.append(user_group_project_manager.id)
- group_ids = [user_group_employee.id,
- user_group_project_user.id,
- user_group_project_manager.id,
- user_group_fsm_user.id,
- user_group_fsm_manager.id,
- user_group_sales_user.id,
- user_group_sales_manager.id, ]
- if user_product_customer:
- group_ids.append(user_product_customer.id)
+ return cls.__generate_user(name, login, group_ids)
+
+ @classmethod
+ def _generate_project_user(cls, name, login):
+ group_ids = cls.__get_user_groups()
+ return cls.__generate_user(name, login, group_ids)
+
+ @classmethod
+ def __generate_user(cls, name, login, group_ids):
return cls.env['res.users'].with_context({'no_reset_password': True}).create({
'name': name,
'login': login,
@@ -34,10 +31,22 @@ class BemadeFSMBaseTest(TransactionCase):
})
@classmethod
- def _generate_project_user(cls, name, login):
- user = cls._generate_project_manager_user(name, login)
- user.write({'groups_id': [Command.unlink(cls.env.ref('project.group_project_manager'))]})
- user.write({'groups_id': [Command.unlink(cls.env.ref('industry_fsm.group_fsm_manager'))]})
+ def __get_user_groups(cls):
+ user_group_employee = cls.env.ref('base.group_user')
+ user_group_project_user = cls.env.ref('project.group_project_user')
+ user_group_fsm_user = cls.env.ref('industry_fsm.group_fsm_user')
+ user_group_sales_user = cls.env.ref('sales_team.group_sale_salesman')
+ user_group_sales_manager = cls.env.ref('sales_team.group_sale_manager')
+ user_product_customer = cls.env.ref('customer_product_code.group_product_customer_code_user')
+
+ group_ids = [user_group_employee.id,
+ user_group_project_user.id,
+ user_group_fsm_user.id,
+ user_group_sales_manager.id,
+ user_group_sales_user.id, ]
+ if user_product_customer:
+ group_ids.append(user_product_customer.id)
+ return group_ids
@classmethod
def _generate_partner(cls, name: str = 'Test Company', company_type: str = 'company', parent=None,
diff --git a/bemade_fsm/tests/test_equipment.py b/bemade_fsm/tests/test_equipment.py
index 934c370..4e64cbf 100644
--- a/bemade_fsm/tests/test_equipment.py
+++ b/bemade_fsm/tests/test_equipment.py
@@ -26,10 +26,11 @@ class TestEquipmentTours(HttpCase, BemadeFSMBaseTest):
@classmethod
def setUpClass(cls):
- cls._generate_partner()
- cls._generate_partner('Site Contact', 'person', cls.partner_company)
- cls._generate_equipment('Test Equipment 1', cls.partner_company)
- cls.user = cls._generate_project_manager_user()
+ super().setUpClass()
+ partner = cls._generate_partner("Test Partner")
+ cls._generate_partner('Site Contact', 'person', parent=partner)
+ cls._generate_equipment(name='Test Equipment 1', partner=partner)
+ cls.user = cls._generate_project_manager_user("Mister PM", 'misterpm')
def test_equipment_base_tour(self):
self.start_tour('/web', 'equipment_base_tour',
diff --git a/bemade_fsm/tests/test_sale_order.py b/bemade_fsm/tests/test_sale_order.py
index eaab2f0..a876514 100644
--- a/bemade_fsm/tests/test_sale_order.py
+++ b/bemade_fsm/tests/test_sale_order.py
@@ -89,26 +89,6 @@ class TestSalesOrder(TestTaskTemplateCommon):
parent_task.action_fsm_validate()
self.assertTrue(sol.qty_delivered != 0)
-
-@tagged("-at_install", "post_install", "slow")
-class TestSaleOrderTour(HttpCase, TestSalesOrder):
- def test_sale_order_tour_no_invoice_button_for_non_manager(self):
- # Make sure a non-manager cannot mark a task as ready to invoice
- so = self.sale_order2
- so.action_confirm()
- with self.assertRaises(AssertionError) as e:
- self.start_tour('/web', 'sale_order_tour',
- login='mruser', )
- self.assertTrue("Click on the ready to invoice button" in str(e.exception))
-
- def test_task_mark_to_invoice(self):
- # Make sure that when a manager clicks the ready to invoice button, the qty delivered is updated on the SO
- so = self.sale_order2
- so.action_confirm()
- sol = so.order_line.filtered(lambda l: 'Test Product 3' in l.name)
- self.start_tour('/web', 'sale_order_tour', login='misterpm')
- self.assertTrue(sol.qty_delivered != 0)
-
def test_task_contacts_through_sale_order(self):
""" Make sure the site contacts and work order contacts transfer correctly from the SO to the task."""
@@ -121,7 +101,7 @@ class TestSaleOrderTour(HttpCase, TestSalesOrder):
})
so = self._generate_sale_order(partner)
product = self._generate_product()
- sol = self._generate_sale_order_line(product=product)
+ sol = self._generate_sale_order_line(sale_order=so, product=product)
so.action_confirm()
@@ -156,3 +136,26 @@ class TestSaleOrderTour(HttpCase, TestSalesOrder):
self.assertEqual(task.site_contacts, so.site_contacts)
self.assertEqual(task.work_order_contacts, so.work_order_contacts)
+
+
+@tagged("-at_install", "post_install", "slow")
+class TestSaleOrderTour(HttpCase, TestSalesOrder):
+ def test_sale_order_tour_no_invoice_button_for_non_manager(self):
+ so = self._generate_sale_order(client_order_ref='TEST ORDER 2')
+ self._generate_sale_order_line(so, self._generate_product(name='Test Product 3'))
+ self._generate_project_user('Mr. User', 'mruser')
+ so.action_confirm()
+ # Make sure a non-manager cannot mark a task as ready to invoice
+ with self.assertRaises(AssertionError) as e:
+ self.start_tour('/web', 'sale_order_tour',
+ login='mruser', )
+ self.assertTrue("Click on the ready to invoice button" in str(e.exception))
+
+ def test_task_mark_to_invoice(self):
+ # Make sure that when a manager clicks the ready to invoice button, the qty delivered is updated on the SO
+ so = self._generate_sale_order(client_order_ref='TEST ORDER 2')
+ sol = self._generate_sale_order_line(so, self._generate_product(name='Test Product 3'))
+ so.action_confirm()
+ user = self._generate_project_manager_user('Mr. User', 'mruser')
+ self.start_tour('/web', 'sale_order_tour', login=user.login)
+ self.assertTrue(sol.qty_delivered != 0)
diff --git a/bemade_fsm/tests/test_task_template.py b/bemade_fsm/tests/test_task_template.py
index 3d20375..cb1aee5 100644
--- a/bemade_fsm/tests/test_task_template.py
+++ b/bemade_fsm/tests/test_task_template.py
@@ -60,6 +60,10 @@ class TestTaskTemplate(TestTaskTemplateCommon):
@tagged('-at_install', 'post_install', 'slow')
class TestTaskTemplateTour(HttpCase, TestTaskTemplateCommon):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls._generate_project_manager_user('Mister PM', 'misterpm')
def test_task_template_tour(self):
self.start_tour('/web', 'task_template_tour',
diff --git a/bemade_fsm/views/equipment.xml b/bemade_fsm/views/equipment.xml
index 869181d..5bf4d41 100644
--- a/bemade_fsm/views/equipment.xml
+++ b/bemade_fsm/views/equipment.xml
@@ -55,7 +55,7 @@
-
+