Thomas Larsson created AVRO-3104:
------------------------------------

             Summary: avro-python __eq__ method of PrimitiveSchema, EnumSchema 
and FixedSchema throws exception
                 Key: AVRO-3104
                 URL: https://issues.apache.org/jira/browse/AVRO-3104
             Project: Apache Avro
          Issue Type: Bug
          Components: python
    Affects Versions: 1.10.2
            Reporter: Thomas Larsson


The __eq__ method of the 
[PrimitiveSchema|https://github.com/apache/avro/blob/master/lang/py3/avro/schema.py#L629],
 EnumSchema and FixedSchema assume that the compared object has an attribute 
called "props" which makes a statement like this (for example) throw an 
exception:

{code:python}
o = PrimitiveSchema(...)
if o == "null":
  print("Not same")
{code}
   
The exception message looks like:

{code:bash}
AttributeError: 'str' object has no attribute 'props'
{code}

A more robust equals method would start by ensuring type equality before doing 
other comparisons. Alternatively (though less pretty) the way the other Schema 
types implement it could be used, for example 
[ArraySchema|https://github.com/apache/avro/blob/master/lang/py3/avro/schema.py#L772]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to