From 633428c9f5783e0cf9ba2f31f553687a3489f87e Mon Sep 17 00:00:00 2001 From: "robin.keunen" Date: Fri, 1 Nov 2019 15:06:40 +0100 Subject: [PATCH] [ADD] demo data --- easy_my_coop/demo/coop.xml | 14 +-- easy_my_coop/demo/users.xml | 44 +++++++ easy_my_coop/security/res_groups.xml | 2 +- easy_my_coop/tests/test_emc.py | 174 +++++++++++++++++++++++++++ easy_my_coop_document/__openerp__.py | 4 +- easy_my_coop_loan/__manifest__.py | 3 + easy_my_coop_loan/demo/coop.xml | 34 ++++++ 7 files changed, 262 insertions(+), 13 deletions(-) create mode 100644 easy_my_coop/demo/users.xml create mode 100644 easy_my_coop/tests/test_emc.py create mode 100644 easy_my_coop_loan/demo/coop.xml diff --git a/easy_my_coop/demo/coop.xml b/easy_my_coop/demo/coop.xml index 3a2db7f..32880c7 100644 --- a/easy_my_coop/demo/coop.xml +++ b/easy_my_coop/demo/coop.xml @@ -93,10 +93,6 @@ - - - - Part B - Worker Part B @@ -110,10 +106,6 @@ - - - - Manuel Dublues manuel@demo.net @@ -124,12 +116,12 @@ manual 3 - + en_US - + 2 50 @@ -137,7 +129,7 @@ - + 4 50 diff --git a/easy_my_coop/demo/users.xml b/easy_my_coop/demo/users.xml new file mode 100644 index 0000000..1177375 --- /dev/null +++ b/easy_my_coop/demo/users.xml @@ -0,0 +1,44 @@ + + + + + + User EMC + + + user.emc@coop.coop + Rue de la colocation, 23 + Bruxelles + 1030 + + + + + + user-emc + demo + + + + + Manager EMC + + + manager.emc@coop.coop + Rue de la colocation, 24 + Liège + 4100 + + + + + + manager-emc + demo + + + + diff --git a/easy_my_coop/security/res_groups.xml b/easy_my_coop/security/res_groups.xml index e07e82b..6fbb920 100644 --- a/easy_my_coop/security/res_groups.xml +++ b/easy_my_coop/security/res_groups.xml @@ -3,7 +3,7 @@ User - + diff --git a/easy_my_coop/tests/test_emc.py b/easy_my_coop/tests/test_emc.py new file mode 100644 index 0000000..d3b88a5 --- /dev/null +++ b/easy_my_coop/tests/test_emc.py @@ -0,0 +1,174 @@ +# Copyright 2019 Coop IT Easy SCRL fs +# Robin Keunen +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo.fields import Date +from odoo.exceptions import AccessError +from .test_base import EMCBaseCase + + +class EMCCase(EMCBaseCase): + def setUp(self): + super(EMCCase, self).setUp() + + self.request = self.browse_ref( + "easy_my_coop.subscription_request_1_demo" + ) + self.bank_journal_euro = self.env["account.journal"].create( + {"name": "Bank", "type": "bank", "code": "BNK67"} + ) + self.payment_method_manual_in = self.env.ref( + "account.account_payment_method_manual_in" + ) + + def test_put_on_waiting_list(self): + self.as_emc_user() + self.request.put_on_waiting_list() + self.assertEquals(self.request.state, "waiting") + + def test_validate_subscription_request(self): + self.as_emc_user() + self.request.validate_subscription_request() + + self.assertEquals(self.request.state, "done") + self.assertTrue(self.request.partner_id) + self.assertTrue(self.request.partner_id.coop_candidate) + self.assertFalse(self.request.partner_id.member) + self.assertEquals(self.request.type, "new") + self.assertTrue(len(self.request.capital_release_request) >= 1) + self.assertEquals(self.request.capital_release_request.state, "open") + self.assertTrue(self.request.capital_release_request.sent) + + def test_register_payment_for_capital_release(self): + self.as_emc_user() + self.request.validate_subscription_request() + invoice = self.request.capital_release_request + + ctx = {"active_model": "account.invoice", "active_ids": [invoice.id]} + register_payments = ( + self.env["account.register.payments"] + .with_context(ctx) + .create( + { + "payment_date": Date.today(), + "journal_id": self.bank_journal_euro.id, + "payment_method_id": self.payment_method_manual_in.id, + } + ) + ) + register_payments.create_payments() + self.assertEquals(self.request.capital_release_request.state, "paid") + + partner = self.request.partner_id + self.assertFalse(partner.coop_candidate) + self.assertTrue(partner.member) + self.assertTrue(partner.share_ids) + self.assertEquals(self.request.partner_id.effective_date, Date.today()) + + share = partner.share_ids[0] + self.assertEquals(share.share_number, self.request.ordered_parts) + self.assertEquals( + share.share_product_id, self.request.share_product_id + ) + self.assertEquals(share.effective_date, Date.today()) + + def test_user_rights(self): + + request_values = { + "name": "test create request", + "email": "test@demo.net", + "address": "schaerbeekstraat", + "zip_code": "1111", + "city": "Brussels", + "country_id": self.ref("base.be"), + "date": Date.today(), + "source": "manual", + "ordered_parts": 3, + "share_product_id": self.ref( + "easy_my_coop.product_template_share_type_2_demo" + ).product_variant_id.id, + "lang": "en_US", + } + + # test ir model access for base user + self.as_user() + read_request = self.browse_ref( + "easy_my_coop.subscription_request_1_demo" + ) + with self.assertRaises(AccessError): + read_request.name = "test write request" + with self.assertRaises(AccessError): + self.env["subscription.request"].create(request_values) + with self.assertRaises(AccessError): + read_request.unlink() + + share_line = self.browse_ref("easy_my_coop.share_line_1_demo") + with self.assertRaises(AccessError): + share_line.share_number = 3 + + # test ir model access for easy my coop user + self.as_emc_user() + read_request = self.browse_ref( + "easy_my_coop.subscription_request_1_demo" + ) + read_request.name = "test write request" + create_request = self.env["subscription.request"].create( + request_values + ) + with self.assertRaises(AccessError): + create_request.unlink() + + share_line = self.browse_ref("easy_my_coop.share_line_1_demo") + share_line.share_number = 3 + with self.assertRaises(AccessError): + share_line.unlink() + + share_type = self.browse_ref( + "easy_my_coop.product_template_share_type_1_demo" + ) + share_type.list_price = 30 + with self.assertRaises(AccessError): + self.env["product.template"].create( + { + "name": "Part C - Client", + "short_name": "Part C", + "is_share": True, + "default_share_product": True, + "force_min_qty": True, + "minimum_quantity": 2, + "by_individual": True, + "by_company": True, + "list_price": 50, + "display_on_website": True, + } + ) + with self.assertRaises(AccessError): + share_type.unlink() + + # test ir model access for easy my coop manager + self.as_emc_manager() + read_request = self.browse_ref( + "easy_my_coop.subscription_request_1_demo" + ) + read_request.name = "test write request" + create_request = self.env["subscription.request"].create( + request_values + ) + create_request.unlink() + + share_type = self.env["product.template"].create( + { + "name": "Part C - Client", + "short_name": "Part C", + "is_share": True, + "default_share_product": True, + "force_min_qty": True, + "minimum_quantity": 2, + "by_individual": True, + "by_company": True, + "list_price": 50, + "display_on_website": True, + } + ) + share_type.list_price = 30 + share_type.unlink() diff --git a/easy_my_coop_document/__openerp__.py b/easy_my_coop_document/__openerp__.py index 8a2112c..1c61920 100644 --- a/easy_my_coop_document/__openerp__.py +++ b/easy_my_coop_document/__openerp__.py @@ -4,7 +4,9 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { -# migrate in v12 and isolate from emc + # migrate in v12 and isolate from emc + # add manager group or use relevant existing group + # add ir.model.access rules for that user 'name': 'Easy My Coop Document', 'summary': """ diff --git a/easy_my_coop_loan/__manifest__.py b/easy_my_coop_loan/__manifest__.py index 60b4386..7a39db5 100644 --- a/easy_my_coop_loan/__manifest__.py +++ b/easy_my_coop_loan/__manifest__.py @@ -23,5 +23,8 @@ 'views/menus.xml', 'data/mail_template_data.xml', ], + "demo": [ + "demo/coop.xml", + ], 'installable': True, } diff --git a/easy_my_coop_loan/demo/coop.xml b/easy_my_coop_loan/demo/coop.xml new file mode 100644 index 0000000..57452f2 --- /dev/null +++ b/easy_my_coop_loan/demo/coop.xml @@ -0,0 +1,34 @@ + + + + + test loan issue + + + + + + + + 0.03 + 100 + 4000 + 10000 + 1000 + yearly + + + + 0.08 + ongoing + + + + + 3 + + +