def crud_get_rent_house(odoo: OdooRPC, domain: List = [], offset: int = 0, limit: int = 20) -> List[RentHouse]: rent_houses: List[RentHouse] = [] result = odoo.search_read(MODEL_NAME, domain, [], offset, limit) for row in result: rent_houses.append(RentHouse(**row)) return rent_houses
def crud_get_action_window(odoo: OdooRPC, domain: List = [], offset: int = 0, limit: int = 20) -> List[ActionWindow]: action_window: List[ActionWindow] = [] result = odoo.search_read(MODEL_NAME, domain, [], offset, limit) for row in result: action_window.append(ActionWindow(**row)) return action_window
def crud_get_view(odoo: OdooRPC, domain: List = [], offset: int = 0, limit: int = 20) -> List[View]: views: List[View] = [] result = odoo.search_read(MODEL_NAME, domain, [], offset, limit) for row in result: views.append(View(**row)) return views
def crud_get_menu(odoo: OdooRPC, domain: List = [], offset: int = 0, limit: int = 20) -> List[Menu]: menu: List[Menu] = [] result = odoo.search_read(MODEL_NAME, domain, [], offset, limit) for row in result: menu.append(Menu(**row)) return menu
def crud_get_app_release(odoo: OdooRPC, domain: List = [], offset: int = 0, limit: int = 20) -> List[AppRelease]: app_releases: List[AppRelease] = [] result = odoo.search_read(MODEL_NAME, domain, [], offset, limit) for row in result: app_releases.append(AppRelease(**row)) return app_releases
def crud_get_models(odoo: OdooRPC, domain: List = [], offset: int = 0, limit: int = 20) -> List[Model]: models: List[Model] = [] result = odoo.search_read(MODEL_NAME, domain, [], offset, limit) for row in result: models.append(Model(**row)) return models
def crud_get_attachment(odoo: OdooRPC, domain: List = [], offset: int = 0, limit: int = 20) -> List[Attachment]: attachments: List[Attachment] = [] result = odoo.search_read(MODEL_NAME, domain, ["name", "type", "datas", "url", "mimetype"], offset, limit) for row in result: attachments.append(Attachment(**row)) return attachments
def crud_get_telegram_users(odoo: OdooRPC, domain: List = [], offset: int = 0, limit: int = 20, change_id=True) -> List[TelegramUser]: telegram_users: List[TelegramUser] = [] result = odoo.search_read(MODEL_NAME, domain, [], offset, limit) for row in result: if change_id: row["id"] = row["x_user_id"] telegram_users.append(TelegramUser(**row)) return telegram_users
class OdooRPCTest(TestCase): def __init__(self, *args, **kwargs): super(OdooRPCTest, self).__init__(*args, **kwargs) self.odoo = OdooRPC( ODOO_TEST_URL, ODOO_TEST_DB, ODOO_TEST_USERNAME, ODOO_TEST_PASSWORD, ) def test_version(self): result = self.odoo.version() self.assertEqual(type(result), Version) def test_authenticate(self): result = self.odoo.authenticate() self.assertEqual(type(result), int) def test_check_access_right(self): result = self.odoo.check_access_rights("res.partner", ["read"]) self.assertEqual(result, True) def test_search(self): result = self.odoo.search("res.partner") self.assertEqual(type(result), list) def test_search_limit(self): result = self.odoo.search("res.partner", limit=1) self.assertEqual(len(result), 1) def test_search_domain(self): result = self.odoo.search("res.partner", domain=[ ["is_company", "=", True]]) self.assertEqual(len(result), 1) def test_search_read(self): result = self.odoo.search_read("res.partner") self.assertEqual(type(result), list) def test_search_read_limit(self): result = self.odoo.search_read("res.partner", limit=1) self.assertEqual(len(result), 1) def test_search_read_domain(self): result = self.odoo.search_read( "res.partner", domain=[["is_company", "=", True]]) self.assertEqual(len(result), 1) def test_search_read_fields(self): result = self.odoo.search_read( "res.partner", fields=["name", "email"], limit=1) self.assertEqual(str(result[0].keys()), "dict_keys(['id', 'name', 'email'])") def test_read(self): result = self.odoo.read("res.partner", [3], fields=["name", "email"]) self.assertEqual(len(result), 1) self.assertEqual(str(result[0].keys()), "dict_keys(['id', 'name', 'email'])") def test_fields_get(self): result = self.odoo.fields_get("res.partner") self.assertEqual(type(result), dict) def test_create_write_unlink(self): id = self.odoo.create("res.partner", { "name": "New Partner" }) self.assertEqual(type(id), int) result = self.odoo.write("res.partner", id, { "name": "Newer Parner", "email": "*****@*****.**", }) self.assertEqual(result, True) result_delete = self.odoo.unlink("res.partner", id) self.assertEqual(result_delete, True)