Skip to content

Commit

Permalink
Fix tests broken due to pytest-dev/pytest#5412
Browse files Browse the repository at this point in the history
This breaks our tests as we use str(e) everywhere and as the above
PR changes the behaviour of str to be the same as repr which is top
print the Exception info Object, it breaks our tests.
  • Loading branch information
shashank88 committed Jul 5, 2019
1 parent 17ecdff commit c49e9c9
Show file tree
Hide file tree
Showing 12 changed files with 39 additions and 39 deletions.
14 changes: 7 additions & 7 deletions tests/integration/chunkstore/test_chunkstore.py
Expand Up @@ -664,19 +664,19 @@ def test_read_chunk_range(chunkstore_lib):
def test_read_data_doesnt_exist(chunkstore_lib):
with pytest.raises(NoDataFoundException) as e:
chunkstore_lib.read('some_data')
assert('No data found' in str(e))
assert('No data found' in str(e.value))


def test_invalid_type(chunkstore_lib):
with pytest.raises(Exception) as e:
chunkstore_lib.write('some_data', str("Cannot write a string"), 'D')
assert('Can only chunk DataFrames' in str(e))
assert('Can only chunk DataFrames' in str(e.value))


def test_append_no_data(chunkstore_lib):
with pytest.raises(NoDataFoundException) as e:
chunkstore_lib.append('some_data', DataFrame())
assert('Symbol does not exist.' in str(e))
assert('Symbol does not exist.' in str(e.value))


def test_append_upsert(chunkstore_lib):
Expand Down Expand Up @@ -849,11 +849,11 @@ def test_rename(chunkstore_lib):

with pytest.raises(Exception) as e:
chunkstore_lib.rename('new_name', 'new_name')
assert('already exists' in str(e))
assert('already exists' in str(e.value))

with pytest.raises(NoDataFoundException) as e:
chunkstore_lib.rename('doesnt_exist', 'temp')
assert('No data found for doesnt_exist' in str(e))
assert('No data found for doesnt_exist' in str(e.value))

assert('test' not in chunkstore_lib.list_symbols())

Expand Down Expand Up @@ -1012,7 +1012,7 @@ def test_unnamed_colums(chunkstore_lib):
)
with pytest.raises(Exception) as e:
chunkstore_lib.write('test_df', df, chunk_size='D')
assert('must be named' in str(e))
assert('must be named' in str(e.value))

df = DataFrame(data={None: [1, 2, 3]},
index=MultiIndex.from_tuples([(dt(2016, 1, 1), 1),
Expand All @@ -1022,7 +1022,7 @@ def test_unnamed_colums(chunkstore_lib):
)
with pytest.raises(Exception) as e:
chunkstore_lib.write('test_df', df, chunk_size='D')
assert('must be named' in str(e))
assert('must be named' in str(e.value))


def test_quarterly_data(chunkstore_lib):
Expand Down
6 changes: 3 additions & 3 deletions tests/integration/test_arctic.py
Expand Up @@ -191,7 +191,7 @@ def test_lib_rename(arctic):
assert(l.read('test_data').data == 'abc')
with pytest.raises(LibraryNotFoundException) as e:
l = arctic['test']
assert('Library test' in str(e))
assert('Library test' in str(e.value))
assert('test' not in arctic.list_libraries())


Expand All @@ -202,15 +202,15 @@ def test_lib_rename_namespace(arctic):

with pytest.raises(ValueError) as e:
arctic.rename_library('namespace.test', 'new_namespace.test')
assert('Collection can only be renamed in the same database' in str(e))
assert('Collection can only be renamed in the same database' in str(e.value))

arctic.rename_library('namespace.test', 'namespace.newlib')
l = arctic['namespace.newlib']
assert(l.read('test_data').data == 'abc')

with pytest.raises(LibraryNotFoundException) as e:
l = arctic['namespace.test']
assert('Library namespace.test' in str(e))
assert('Library namespace.test' in str(e.value))
assert('namespace.test' not in arctic.list_libraries())


Expand Down
4 changes: 2 additions & 2 deletions tests/integration/test_compress_integration.py
Expand Up @@ -65,10 +65,10 @@ def test_exceptions():
data = data[0:16]
with pytest.raises(Exception) as e:
c.decompress(data)
assert("decompressor wrote" in str(e).lower() or "corrupt input at" in str(e).lower() or "decompression failed: corrupt input" in str(e).lower())
assert("decompressor wrote" in str(e.value).lower() or "corrupt input at" in str(e.value).lower() or "decompression failed: corrupt input" in str(e.value).lower())

data = c.compress(b'1010101010100000000000000000000000000000000000000000000000000000000011111111111111111111111111111')
data = [data[0:16] for x in (1, 2, 3)]
with pytest.raises(Exception) as e:
c.decompress_array(data)
assert ("decompressor wrote" in str(e).lower() or "corrupt input at" in str(e).lower() or "decompression failed: corrupt input" in str(e).lower())
assert ("decompressor wrote" in str(e.value).lower() or "corrupt input at" in str(e.value).lower() or "decompression failed: corrupt input" in str(e.value).lower())
6 changes: 3 additions & 3 deletions tests/integration/tickstore/test_toplevel.py
Expand Up @@ -45,7 +45,7 @@ def test_should_raise_exceptions_if_no_libraries_are_found_in_the_date_range_whe
'library_name': 'FEED_2010.LEVEL1'})
with pytest.raises(NoDataFoundException) as e:
toplevel_tickstore.read('blah', DateRange(start=dt(2012, 1, 1), end=dt(2012, 3, 1)))
assert "No underlying libraries exist for the given date range" in str(e)
assert "No underlying libraries exist for the given date range" in str(e.value)


def test_should_return_data_when_date_range_falls_in_a_single_underlying_library(toplevel_tickstore, arctic):
Expand Down Expand Up @@ -118,7 +118,7 @@ def test_should_raise_exception_if_library_does_not_exist(toplevel_tickstore):
with pytest.raises(LibraryNotFoundException) as e:
toplevel_tickstore.add(DateRange(start=dt(2010, 1, 1), end=dt(2010, 12, 31, 23, 59, 59, 999000)), 'FEED_2010.LEVEL1')
assert toplevel_tickstore._collection.find_one({'library_name': 'FEED_2010.LEVEL1'})
assert "Library FEED_2010.LEVEL1 was not correctly initialized" in str(e)
assert "Library FEED_2010.LEVEL1 was not correctly initialized" in str(e.value)


def test_should_raise_exception_if_date_range_for_library_overlaps_with_existing_libraries(toplevel_tickstore, arctic):
Expand All @@ -127,7 +127,7 @@ def test_should_raise_exception_if_date_range_for_library_overlaps_with_existing
with pytest.raises(OverlappingDataException) as e:
toplevel_tickstore.add(DateRange(start=dt(2010, 6, 1), end=dt(2010, 12, 31, 23, 59, 59, 999000)), 'FEED_2010a.LEVEL1')
assert toplevel_tickstore._collection.find_one({'library_name': 'FEED_2010.LEVEL1'})
assert "There are libraries that overlap with the date range:" in str(e)
assert "There are libraries that overlap with the date range:" in str(e.value)


def test_should_successfully_do_a_roundtrip_write_and_read_spanning_multiple_underlying_libraries(toplevel_tickstore, arctic):
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/tickstore/test_ts_read.py
Expand Up @@ -701,4 +701,4 @@ def fake(self):

with pytest.raises(Exception) as e:
tickstore_lib.write('test', df)
assert('Casting object column to string failed' in str(e))
assert('Casting object column to string failed' in str(e.value))
4 changes: 2 additions & 2 deletions tests/unit/chunkstore/test_date_chunker.py
Expand Up @@ -79,12 +79,12 @@ def test_to_chunks_exceptions():

with pytest.raises(Exception) as e:
six.next(c.to_chunks(df, 'D'))
assert('datetime indexed' in str(e))
assert('datetime indexed' in str(e.value))

df.columns = ['date']
with pytest.raises(Exception) as e:
six.next(c.to_chunks(df, 'ZSDFG'))
assert('Unknown freqstr' in str(e) or 'Invalid frequency' in str(e))
assert('Unknown freqstr' in str(e.value) or 'Invalid frequency' in str(e.value))


def test_exclude():
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/serialization/test_numpy_arrays.py
Expand Up @@ -91,7 +91,7 @@ def test_multi_column_fail():

with pytest.raises(Exception) as e:
n.deserialize(a, columns=['A', 'B'])
assert('Duplicate' in str(e))
assert('Duplicate' in str(e.value))


def test_dataframe_writable_after_objify():
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/store/test_pickle_store.py
Expand Up @@ -171,4 +171,4 @@ def test_pickle_store_future_version():
ps = PickleStore()
with pytest.raises(UnsupportedPickleStoreVersion) as e:
ps.read(arctic_lib, version, sentinel.symbol)
assert('unsupported version of pickle store' in str(e))
assert('unsupported version of pickle store' in str(e.value))
2 changes: 1 addition & 1 deletion tests/unit/store/test_version_store.py
Expand Up @@ -245,7 +245,7 @@ def test_read_reports_random_errors():
with pytest.raises(Exception) as e:
with patch('arctic.store.version_store.log_exception') as le:
VersionStore.read(self, sentinel.symbol, sentinel.as_of, sentinel.from_version)
assert 'bad' in str(e)
assert 'bad' in str(e.value)
assert le.call_count == 1


Expand Down
12 changes: 6 additions & 6 deletions tests/unit/test_arctic.py
Expand Up @@ -182,7 +182,7 @@ class DummyType(object):

with pytest.raises(ArcticException) as e:
register_library_type("new_dummy_type", DummyType)
assert "ArcticException: Library new_dummy_type already registered" in str(e)
assert "Library new_dummy_type already registered" in str(e.value)


def test_set_quota():
Expand Down Expand Up @@ -301,7 +301,7 @@ def test_check_quota_exceeded():
}))
with pytest.raises(QuotaExceededException) as e:
ArcticLibraryBinding.check_quota(self)
assert "Quota Exceeded: arctic_db.lib 1.000 / 1 GB used" in str(e)
assert "Quota Exceeded: arctic_db.lib 1.000 / 1 GB used" in str(e.value)


def test_initialize_library():
Expand Down Expand Up @@ -336,7 +336,7 @@ def test_initialize_library_too_many_ns():
assert self._conn.__getitem__.call_args_list == [call(sentinel.db_name),
call(sentinel.db_name)]
assert lib_type.initialize_library.call_count == 0
assert 'Too many namespaces 5001, not creating: sentinel.lib_name' in str(e)
assert 'Too many namespaces 5001, not creating: sentinel.lib_name' in str(e.value)


def test_initialize_library_with_list_coll_names():
Expand Down Expand Up @@ -391,7 +391,7 @@ def test_get_library_not_initialized():
patch('arctic.arctic.ArcticLibraryBinding', autospec=True) as ML:
ML.return_value.get_library_type.return_value = None
Arctic.get_library(self, sentinel.lib_name)
assert "Library %s was not correctly initialized in %s." % (sentinel.lib_name, self) in str(e)
assert "Library %s was not correctly initialized in %s." % (sentinel.lib_name, self) in str(e.value)


def test_get_library_auth_issue():
Expand All @@ -401,7 +401,7 @@ def test_get_library_auth_issue():
patch('arctic.arctic.ArcticLibraryBinding', autospec=True) as ML:
ML.return_value.get_library_type.side_effect = OperationFailure('database error: not authorized for query on arctic_marketdata.index.ARCTIC')
Arctic.get_library(self, sentinel.lib_name)
assert "Library %s was not correctly initialized in %s." % (sentinel.lib_name, self) in str(e)
assert "Library %s was not correctly initialized in %s." % (sentinel.lib_name, self) in str(e.value)


def test_get_library_not_registered():
Expand All @@ -413,7 +413,7 @@ def test_get_library_not_registered():
Arctic.get_library(self, sentinel.lib_name)
assert ("Couldn't load LibraryType '%s' for '%s' (has the class been registered?)" %
(sentinel.lib_type, sentinel.lib_name)
)in str(e)
)in str(e.value)


def test_mongo_host_get_set():
Expand Down
10 changes: 5 additions & 5 deletions tests/unit/test_decorators_unit.py
Expand Up @@ -100,7 +100,7 @@ def foo():
foo = mongo_retry(foo)
with pytest.raises(Exception) as e:
foo()
assert "Unexpected Error" in str(e)
assert "Unexpected Error" in str(e.value)
assert le.call_count == 1
assert le.call_args[0][0] == "foo"

Expand All @@ -112,7 +112,7 @@ def foo():
raise Exception("Unexpected Error")
with pytest.raises(Exception) as e:
foo()
assert "Unexpected Error" in str(e)
assert "Unexpected Error" in str(e.value)
assert le.call_count == 0


Expand All @@ -125,7 +125,7 @@ def foo():
raise error
with pytest.raises(OperationFailure) as e:
foo()
assert 'OperationFailure: unauthorized for db:arctic_jblackburn' in str(e)
assert 'OperationFailure: unauthorized for db:arctic_jblackburn' in str(e.value)
assert le.call_count == 1


Expand All @@ -137,7 +137,7 @@ def foo():
raise error
with pytest.raises(OperationFailure) as e:
foo()
assert 'duplicate key' in str(e)
assert 'duplicate key' in str(e.value)
assert le.call_count == 1


Expand All @@ -149,7 +149,7 @@ def foo():
raise error
with pytest.raises(ServerSelectionTimeoutError) as e:
foo()
assert 'some error' in str(e)
assert 'some error' in str(e.value)
assert le.call_count == 1


Expand Down
14 changes: 7 additions & 7 deletions tests/unit/tickstore/test_toplevel.py
Expand Up @@ -24,31 +24,31 @@ def test_raise_exception_if_daterange_is_not_provided():
store = TopLevelTickStore(Mock())
with pytest.raises(Exception) as e:
store._get_library_metadata(None)
assert "A date range must be provided" in str(e)
assert "A date range must be provided" in str(e.value)


def test_raise_exception_if_date_range_does_not_contain_start_date():
store = TopLevelTickStore(Mock())
dr = DateRange(start=None, end=dt(2011, 1, 1))
with pytest.raises(Exception) as e:
store._get_library_metadata(dr)
assert "The date range {0} must contain a start and end date".format(dr) in str(e)
assert "The date range {0} must contain a start and end date".format(dr) in str(e.value)


def test_raise_exception_if_date_range_does_not_contain_end_date():
store = TopLevelTickStore(Mock())
dr = DateRange(start=dt(2011, 1, 1), end=None)
with pytest.raises(Exception) as e:
store._get_library_metadata(dr)
assert "The date range {0} must contain a start and end date".format(dr) in str(e)
assert "The date range {0} must contain a start and end date".format(dr) in str(e.value)


def test_raise_exception_if_date_range_does_not_contain_start_and_end_date():
store = TopLevelTickStore(Mock())
dr = DateRange(start=None, end=None)
with pytest.raises(Exception) as e:
store._get_library_metadata(dr)
assert "The date range {0} must contain a start and end date".format(dr) in str(e)
assert "The date range {0} must contain a start and end date".format(dr) in str(e.value)


def test_raise_exception_and_log_an_error_if_an_invalid_library_name_is_added():
Expand All @@ -66,7 +66,7 @@ def test_raise_exception_if_date_range_overlaps():
self._get_library_metadata.return_value = [TickStoreLibrary('lib1', None), ]
with pytest.raises(OverlappingDataException) as e:
TopLevelTickStore.add(self, DateRange(start=dt(2010, 1, 1), end=dt(2011, 1, 1, 23, 59, 59, 999000)), "blah")
assert "There are libraries that overlap with the date range:" in str(e)
assert "There are libraries that overlap with the date range:" in str(e.value)


@pytest.mark.parametrize(('start', 'end', 'expected_start', 'expected_end'),
Expand Down Expand Up @@ -103,7 +103,7 @@ def test_raise_error_add_library_is_called_with_a_date_range_not_on_day_boundari
self = create_autospec(TopLevelTickStore, _arctic_lib=MagicMock(), _collection=MagicMock())
self._get_library_metadata.return_value = []
TopLevelTickStore.add(self, DateRange(start=start, end=end), "blah")
assert "Date range should fall on UTC day boundaries" in str(e)
assert "Date range should fall on UTC day boundaries" in str(e.value)


@pytest.mark.parametrize(('start', 'end', 'expected_start_index', 'expected_end_index'),
Expand Down Expand Up @@ -179,4 +179,4 @@ def test_slice_raises():
m = TopLevelTickStore(Mock())
with pytest.raises(UnhandledDtypeException) as e:
m._slice("abc", 1, 2)
assert("Can't persist type" in str(e))
assert("Can't persist type" in str(e.value))

0 comments on commit c49e9c9

Please sign in to comment.