import pytest import fin_defs def test_parse_attr(): assert fin_defs.parse_attr_data('') == {} assert fin_defs.parse_attr_data(' ') == {} assert fin_defs.parse_attr_data('abc=abc') == {'abc': 'abc'} assert fin_defs.parse_attr_data('abc=123') == {'abc': 123} assert fin_defs.parse_attr_data('abc=123,xyz=abc') == {'abc': 123, 'xyz': 'abc'} assert fin_defs.parse_attr_data(' abc=123 , xyz=abc ') == { 'abc': 123, 'xyz': 'abc', } def test_from_nordnet(): derp = fin_defs.Asset.from_string_id('stock:NVO.NYSE{nordnet_id=123}') assert isinstance(derp, fin_defs.Stock) assert derp.ticker == 'NVO' assert derp.nordnet_id == 123 @pytest.mark.parametrize('asset', fin_defs.WELL_KNOWN_SYMBOLS.values()) def test_to_from_string_id_shortcut(asset: fin_defs.Asset): assert ( fin_defs.Asset.from_string_id(asset.to_string_id(), shortcut_well_known=True) == asset ) @pytest.mark.parametrize('asset', fin_defs.WELL_KNOWN_SYMBOLS.values()) def test_to_from_string_id(asset: fin_defs.Asset): assert ( fin_defs.Asset.from_string_id(asset.to_string_id(), shortcut_well_known=False) == asset ) @pytest.mark.parametrize('asset', fin_defs.WELL_KNOWN_SYMBOLS.values()) def test_to_from_polygon_id(asset: fin_defs.Asset): if isinstance(asset, fin_defs.CryptoCurrency): return assert fin_defs.Asset.from_polygon_id(asset.to_polygon_id()) == asset