From 95316aef1aaef3347e6cd7d6fd4c7af544037283 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Mon, 27 Jun 2022 13:11:20 +0200 Subject: [PATCH] Fix product clone failed when translation location code was longer than 2 characters (e.g 'ES-AR') --- connect/cli/plugins/product/clone.py | 2 +- tests/conftest.py | 4 +- tests/fixtures/comparation_product.xlsx | Bin 34413 -> 36393 bytes .../primary_translation_response.json | 46 --------- .../product_translations_response.json | 90 ++++++++++++++++++ tests/plugins/product/test_clone.py | 22 +++++ tests/plugins/product/test_commands.py | 51 +++++----- 7 files changed, 143 insertions(+), 72 deletions(-) delete mode 100644 tests/fixtures/primary_translation_response.json create mode 100644 tests/fixtures/product_translations_response.json diff --git a/connect/cli/plugins/product/clone.py b/connect/cli/plugins/product/clone.py index 139da3fc..3153772d 100644 --- a/connect/cli/plugins/product/clone.py +++ b/connect/cli/plugins/product/clone.py @@ -245,7 +245,7 @@ def clean_wb(self): for sheetname in get_translation_attributes_sheets(self.wb): ws = self.wb[sheetname] value = 'update' - if sheetname.split()[0] == self.wb['General Information']['B14'].value[0:2]: + if sheetname.split()[0] == self.wb['General Information']['B14'].value.split()[0]: value = '-' for row in range(2, ws.max_row + 1): ws[f'C{row}'].value = value diff --git a/tests/conftest.py b/tests/conftest.py index 6f7020fd..5ea97c87 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -148,8 +148,8 @@ def mocked_locales_response(): @pytest.fixture(scope='function') -def mocked_primary_translation_response(): - with open('./tests/fixtures/primary_translation_response.json') as response: +def mocked_product_translations_response(): + with open('./tests/fixtures/product_translations_response.json') as response: return json.load(response) diff --git a/tests/fixtures/comparation_product.xlsx b/tests/fixtures/comparation_product.xlsx index 9e528a55f3e4f483c03da6d4c0075ed8f99f4169..2372e591d7d7b1ee201011986a546cd5d31d6219 100644 GIT binary patch delta 8603 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 OlE<6icPZ+3?f(GznzhjY delta 6645 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 DF^opz diff --git a/tests/fixtures/primary_translation_response.json b/tests/fixtures/primary_translation_response.json deleted file mode 100644 index 94ecb4be..00000000 --- a/tests/fixtures/primary_translation_response.json +++ /dev/null @@ -1,46 +0,0 @@ -[ - { - "id": "TRN-1079-0833-9890", - "context": { - "id": "LCX-1278-0537-9908", - "instance_id": "PRD-276-377-545", - "name": "My Product", - "icon": "/media/VA-392-495/PRD-276-377-545/media/PRD-276-377-545-logo_aJD74iQ.png", - "type": "product" - }, - "owner": { - "id": "VA-392-495", - "name": "Adrian Inc Oct 12" - }, - "locale": { - "id": "FA", - "name": "Persian" - }, - "stats": { - "total": 30, - "translated": 30 - }, - "auto": { - "enabled": false, - "status": "off" - }, - "status": "inactive", - "events": { - "updated": { - "at": "2020-10-15T01:19:20+00:00", - "by": { - "id": "UR-539-008-555", - "name": "Robert Balboa Oct 12" - } - }, - "created": { - "at": "2020-10-14T12:11:24+00:00", - "by": { - "id": "UR-539-008-555", - "name": "Robert Balboa Oct 12" - } - } - }, - "primary": true - } -] \ No newline at end of file diff --git a/tests/fixtures/product_translations_response.json b/tests/fixtures/product_translations_response.json new file mode 100644 index 00000000..f757e45e --- /dev/null +++ b/tests/fixtures/product_translations_response.json @@ -0,0 +1,90 @@ +[ + { + "id": "TRN-1079-0833-9890", + "context": { + "id": "LCX-1278-0537-9908", + "instance_id": "PRD-276-377-545", + "name": "My Product", + "icon": "/media/VA-392-495/PRD-276-377-545/media/PRD-276-377-545-logo_aJD74iQ.png", + "type": "product" + }, + "owner": { + "id": "VA-392-495", + "name": "Adrian Inc Oct 12" + }, + "locale": { + "id": "FA", + "name": "Persian" + }, + "stats": { + "total": 30, + "translated": 30 + }, + "auto": { + "enabled": false, + "status": "off" + }, + "status": "inactive", + "events": { + "updated": { + "at": "2020-10-15T01:19:20+00:00", + "by": { + "id": "UR-539-008-555", + "name": "Robert Balboa Oct 12" + } + }, + "created": { + "at": "2020-10-14T12:11:24+00:00", + "by": { + "id": "UR-539-008-555", + "name": "Robert Balboa Oct 12" + } + } + }, + "primary": true + }, + { + "id": "TRN-1079-0833-9891", + "context": { + "id": "LCX-1278-0537-9908", + "instance_id": "PRD-276-377-545", + "name": "My Product", + "icon": "/media/VA-392-495/PRD-276-377-545/media/PRD-276-377-545-logo_aJD74iQ.png", + "type": "product" + }, + "owner": { + "id": "VA-392-495", + "name": "Adrian Inc Oct 12" + }, + "locale": { + "id": "ES-AR", + "name": "Argentinian Spanish" + }, + "stats": { + "total": 30, + "translated": 30 + }, + "auto": { + "enabled": false, + "status": "off" + }, + "status": "inactive", + "events": { + "updated": { + "at": "2020-10-15T01:19:20+00:00", + "by": { + "id": "UR-539-008-555", + "name": "Robert Balboa Oct 12" + } + }, + "created": { + "at": "2020-10-14T12:11:24+00:00", + "by": { + "id": "UR-539-008-555", + "name": "Robert Balboa Oct 12" + } + } + }, + "primary": false + } +] \ No newline at end of file diff --git a/tests/plugins/product/test_clone.py b/tests/plugins/product/test_clone.py index bc9a4f5c..2e84cdba 100644 --- a/tests/plugins/product/test_clone.py +++ b/tests/plugins/product/test_clone.py @@ -75,6 +75,28 @@ def test_clean_wb( for row in range(2, 11): assert cloned_wb['Capabilities'][f'B{row}'].value == 'update' + for row in range(2, 7): + assert cloned_wb['Embedding Static Resources'][f'C{row}'].value == 'create' + for row in range(2, 5): + assert cloned_wb['Media'][f'C{row}'].value == 'create' + for row in range(2, 8): + assert cloned_wb['Templates'][f'C{row}'].value == 'create' + for row in range(2, 20): + assert cloned_wb['Items'][f'C{row}'].value == 'create' + for row in range(2, 14): + assert cloned_wb['Ordering Parameters'][f'C{row}'].value == 'create' + for row in range(2, 4): + assert cloned_wb['Fulfillment Parameters'][f'C{row}'].value == 'create' + for row in range(2, 3): + assert cloned_wb['Configuration Parameters'][f'C{row}'].value == 'create' + for row in range(2, 4): + assert cloned_wb['Actions'][f'C{row}'].value == 'create' + for row in range(2, 4): + assert cloned_wb['Translations'][f'B{row}'].value == 'create' + for row in range(2, 32): + assert cloned_wb['FA (TRN-1079-0833-9890)'][f'C{row}'].value == '-' + for row in range(2, 32): + assert cloned_wb['ES-AR (TRN-1079-0833-9891)'][f'C{row}'].value == 'update' @freeze_time('2022-04-05 20:15:00') diff --git a/tests/plugins/product/test_commands.py b/tests/plugins/product/test_commands.py index 654253f5..51c52249 100644 --- a/tests/plugins/product/test_commands.py +++ b/tests/plugins/product/test_commands.py @@ -7,6 +7,7 @@ from click import ClickException from click.testing import CliRunner from openpyxl import load_workbook +from responses import matchers from connect.cli.core.config import Config from connect.cli.plugins.product.export import dump_product @@ -168,7 +169,7 @@ def test_export_product( mocked_actions_response, mocked_configurations_response, mocked_locales_response, - mocked_primary_translation_response, + mocked_product_translations_response, mocked_translation_attributes_xlsx_response, sample_product_workbook, ): @@ -243,14 +244,6 @@ def test_export_product( r'https:\/\/localhost\/public\/v1\/products\/PRD-276-377-545\/parameters\?eq\(phase,' r'configuration\)&limit\=(100|[1-9]?[0-9])\&offset\=0', ) - translation_query = re.compile( - r'https:\/\/localhost\/public\/v1\/localization\/translations\?eq\(context.instance_id,' - r'PRD-276-377-545\)&limit\=(100|[1-9]?[0-9])\&offset\=0', - ) - translation_query2 = re.compile( - r'https:\/\/localhost\/public\/v1\/localization\/translations\?and\(eq\(context.instance_id,' - r'PRD-276-377-545\),eq\(primary,true\)\)&limit\=(100|[1-9]?[0-9])\&offset\=0', - ) mocked_responses.add( method='GET', url=ordering_query, @@ -298,34 +291,46 @@ def test_export_product( ) mocked_responses.add( method='GET', - url=( - 'https://localhost/public/v1/localization/translations?' - 'and(eq(context.instance_id,PRD-457-715-047),eq(primary,true))&limit=100&offset=0' - ), - json=mocked_primary_translation_response, + url='https://localhost/public/v1/localization/translations', + match=[ + matchers.query_string_matcher( + 'and(eq(context.instance_id,PRD-276-377-545),eq(primary,true))&limit=1&offset=0', + ), + ], + json=mocked_product_translations_response[0:1], ) mocked_responses.add( method='GET', - url=translation_query, - json=mocked_primary_translation_response, + url='https://localhost/public/v1/localization/translations', + match=[ + matchers.query_string_matcher( + 'eq(context.instance_id,PRD-276-377-545)&limit=0&offset=0', + ), + ], + json=mocked_product_translations_response, headers={ - 'Content-Range': 'items 0-0/1', + 'Content-Range': 'items 0-1/1', }, ) mocked_responses.add( method='GET', - url=translation_query2, - json=mocked_primary_translation_response, + url='https://localhost/public/v1/localization/translations', + match=[ + matchers.query_string_matcher( + 'eq(context.instance_id,PRD-276-377-545)&limit=100&offset=0', + ), + ], + json=mocked_product_translations_response, headers={ - 'Content-Range': 'items 0-0/1', + 'Content-Range': 'items 0-1/1', }, ) mocked_responses.add( method='GET', - url='https://localhost/public/v1/localization/translations/TRN-1079-0833-9890/attributes', - body=mocked_translation_attributes_xlsx_response, + url=re.compile('https://localhost/public/v1/localization/translations/TRN-1079-0833-989(0|1)/attributes'), + body=mocked_translation_attributes_xlsx_response.read(), headers={ - 'Contet-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', }, ) output_file = dump_product(