diff --git a/grow/pods/catalog_holder_test.py b/grow/pods/catalog_holder_test.py index 3fe8f9a6e..cbde10ba6 100644 --- a/grow/pods/catalog_holder_test.py +++ b/grow/pods/catalog_holder_test.py @@ -407,6 +407,24 @@ def test_yaml_part_extracted_for_own_locales(self): u'Localized yaml doc part in localized doc in unlocalized collection in unlocalized pöd', 'ja') + def test_yaml_part_in_unlocalized_doc_extracted_for_own_locales(self): + self.assertExtractedFor( + self.localized_pod, + u'Localized doc part in unlocalized doc in localized collection in localized pöd', + 'ja') + self.assertExtractedFor( + self.localized_pod, + u'Localized doc part in unlocalized doc in unlocalized collection in localized pöd', + 'ja') + self.assertExtractedFor( + self.unlocalized_pod, + u'Localized doc part in unlocalized doc in localized collection in unlocalized pöd', + 'ja') + self.assertExtractedFor( + self.unlocalized_pod, + u'Localized doc part in unlocalized doc in unlocalized collection in unlocalized pöd', + 'ja') + def test_multilocale_yaml_part_extracted_for_own_locales(self): self.assertExtractedFor( self.localized_pod, @@ -452,18 +470,34 @@ def test_yaml_doc_extracted_for_collection_locales(self): self.unlocalized_pod, u'Unlocalized yaml doc in localized collection in unlocalized pöd', 'fr') + self.assertExtractedFor( + self.localized_pod, + u'Unlocalized base doc part in localized collection in localized pöd', + 'fr') + self.assertExtractedFor( + self.unlocalized_pod, + u'Unlocalized base doc part in localized collection in unlocalized pöd', + 'fr') def test_yaml_doc_extracted_for_podspec_locales(self): self.assertExtractedFor( self.localized_pod, u'Unlocalized yaml doc in unlocalized collection in localized pöd', 'de') + self.assertExtractedFor( + self.localized_pod, + u'Unlocalized base doc part in unlocalized collection in localized pöd', + 'de') def test_yaml_doc_extracted_for_no_locales(self): self.assertExtractedFor( self.unlocalized_pod, u'Unlocalized yaml doc in unlocalized collection in unlocalized pöd', []) + self.assertExtractedFor( + self.localized_pod, + u'Unlocalized base doc part in unlocalized collection in unlocalized pöd', + 'de') # ------------------------------------------------ # YAML files in /content/ root diff --git a/grow/pods/formats.py b/grow/pods/formats.py index 6a32e48c1..ba97c0eff 100644 --- a/grow/pods/formats.py +++ b/grow/pods/formats.py @@ -94,7 +94,7 @@ def _validate_non_base_part(self, fields): # Any additional parts after base part MUST declare one or more locales # (otherwise there's no point) if '$locale' not in fields and '$locales' not in fields: - text = 'You must specify either $locale or $locales.' + text = 'You must specify either $locale or $locales for each document part.' raise BadFormatError(text) self._validate_fields(fields) diff --git a/grow/testing/testdata/extract_localized/localized_pod/content/localized_collection/unlocalized_doc_with_localized_parts.yaml b/grow/testing/testdata/extract_localized/localized_pod/content/localized_collection/unlocalized_doc_with_localized_parts.yaml new file mode 100644 index 000000000..82ecc5edf --- /dev/null +++ b/grow/testing/testdata/extract_localized/localized_pod/content/localized_collection/unlocalized_doc_with_localized_parts.yaml @@ -0,0 +1,5 @@ +--- +foo@: Unlocalized base doc part in localized collection in localized pöd +--- +$locale: ja +foo@: Localized doc part in unlocalized doc in localized collection in localized pöd diff --git a/grow/testing/testdata/extract_localized/localized_pod/content/unlocalized_collection/unlocalized_doc_with_localized_parts.yaml b/grow/testing/testdata/extract_localized/localized_pod/content/unlocalized_collection/unlocalized_doc_with_localized_parts.yaml new file mode 100644 index 000000000..ed5acba5e --- /dev/null +++ b/grow/testing/testdata/extract_localized/localized_pod/content/unlocalized_collection/unlocalized_doc_with_localized_parts.yaml @@ -0,0 +1,5 @@ +--- +foo@: Unlocalized base doc part in unlocalized collection in localized pöd +--- +$locale: ja +foo@: Localized doc part in unlocalized doc in unlocalized collection in localized pöd diff --git a/grow/testing/testdata/extract_localized/unlocalized_pod/content/localized_collection/unlocalized_doc_with_localized_parts.yaml b/grow/testing/testdata/extract_localized/unlocalized_pod/content/localized_collection/unlocalized_doc_with_localized_parts.yaml new file mode 100644 index 000000000..4c733114c --- /dev/null +++ b/grow/testing/testdata/extract_localized/unlocalized_pod/content/localized_collection/unlocalized_doc_with_localized_parts.yaml @@ -0,0 +1,5 @@ +--- +foo@: Unlocalized base doc part in localized collection in unlocalized pöd +--- +$locale: ja +foo@: Localized doc part in unlocalized doc in localized collection in unlocalized pöd diff --git a/grow/testing/testdata/extract_localized/unlocalized_pod/content/unlocalized_collection/unlocalized_doc_with_localized_parts.yaml b/grow/testing/testdata/extract_localized/unlocalized_pod/content/unlocalized_collection/unlocalized_doc_with_localized_parts.yaml new file mode 100644 index 000000000..171bc860e --- /dev/null +++ b/grow/testing/testdata/extract_localized/unlocalized_pod/content/unlocalized_collection/unlocalized_doc_with_localized_parts.yaml @@ -0,0 +1,5 @@ +--- +foo@: Unlocalized base doc part in unlocalized collection in unlocalized pöd +--- +$locale: ja +foo@: Localized doc part in unlocalized doc in unlocalized collection in unlocalized pöd