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)