[ 
https://issues.apache.org/jira/browse/AVRO-3573?focusedWorklogId=789523&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-789523
 ]

ASF GitHub Bot logged work on AVRO-3573:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 11/Jul/22 13:05
            Start Date: 11/Jul/22 13:05
    Worklog Time Spent: 10m 
      Work Description: martin-g commented on code in PR #1759:
URL: https://github.com/apache/avro/pull/1759#discussion_r917905621


##########
lang/py/avro/test/test_schema.py:
##########
@@ -713,6 +713,20 @@ def test_parse_invalid_symbol(self):
         except avro.errors.InvalidName:  # pragma: no coverage
             self.fail("When enum symbol validation is disabled, an invalid 
symbol should not raise InvalidName.")
 
+    def test_parse_duplicate_symbol(self):
+        duplicate_symbol_schema = json.dumps({"type": "enum", "name": 
"AVRO3573", "symbols": ["A", "A", "B", "C", "D"]})
+        with self.assertRaisesRegex(
+            avro.errors.AvroException, r"Duplicate symbol: \[\'A\'\]", 
msg="When enum symbol has a duplicate, AvroException should raise."

Review Comment:
   It seems the escaping is not needed here



##########
lang/py/avro/test/test_schema.py:
##########
@@ -713,6 +713,20 @@ def test_parse_invalid_symbol(self):
         except avro.errors.InvalidName:  # pragma: no coverage
             self.fail("When enum symbol validation is disabled, an invalid 
symbol should not raise InvalidName.")
 
+    def test_parse_duplicate_symbol(self):
+        duplicate_symbol_schema = json.dumps({"type": "enum", "name": 
"AVRO3573", "symbols": ["A", "A", "B", "C", "D"]})
+        with self.assertRaisesRegex(
+            avro.errors.AvroException, r"Duplicate symbol: \[\'A\'\]", 
msg="When enum symbol has a duplicate, AvroException should raise."
+        ):
+            avro.schema.parse(duplicate_symbol_schema)
+
+    def test_parse_duplicate_symbols(self):
+        duplicate_symbols_schema = json.dumps({"type": "enum", "name": 
"AVRO3573", "symbols": ["A", "A", "B", "C", "C", "D"]})
+        with self.assertRaisesRegex(
+            avro.errors.AvroException, r"Duplicate symbols: \[\'A\', \'C\'\]", 
msg="When enum symbols have duplicates, AvroException should raise."

Review Comment:
   and here





Issue Time Tracking
-------------------

    Worklog Id:     (was: 789523)
    Time Spent: 20m  (was: 10m)

> Duplicate symbols (EnumSchema)
> ------------------------------
>
>                 Key: AVRO-3573
>                 URL: https://issues.apache.org/jira/browse/AVRO-3573
>             Project: Apache Avro
>          Issue Type: Improvement
>    Affects Versions: 1.11.0
>            Reporter: Igor Izvekov
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.11.1
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> If EnumSchema has duplicate symbols, an error will raise. Instead of a list 
> of duplicate symbols or a value of duplicate symbol, error shows all list of 
> symbols. Improvement removes this defect and shows a message "Duplicate 
> symbol" with the symbol, if it is one, or "Duplicates symbols" with the list 
> of duplicate symbols, if there are more than one symbol.
> P.S. Tests do not check error's message. Try to write a test for checking a 
> message of an error can take a long time.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to