diff --git a/beanprice/fixtures/close_price_with_null.json b/beanprice/fixtures/close_price_with_null.json new file mode 100644 index 0000000..fc64828 --- /dev/null +++ b/beanprice/fixtures/close_price_with_null.json @@ -0,0 +1,1985 @@ +{ + "chart": { + "result": [ + { + "meta": { + "currency": "AUD", + "symbol": "BGBL.AX", + "exchangeName": "ASX", + "instrumentType": "ETF", + "firstTradeDate": 1683763200, + "regularMarketTime": 1694152469, + "gmtoffset": 36000, + "timezone": "AEST", + "exchangeTimezoneName": "Australia/Sydney", + "regularMarketPrice": 55.77, + "chartPreviousClose": 55.87, + "previousClose": 55.87, + "scale": 3, + "priceHint": 2, + "currentTradingPeriod": { + "pre": { + "timezone": "AEST", + "start": 1694120400, + "end": 1694131200, + "gmtoffset": 36000 + }, + "regular": { + "timezone": "AEST", + "start": 1694131200, + "end": 1694153520, + "gmtoffset": 36000 + }, + "post": { + "timezone": "AEST", + "start": 1694153520, + "end": 1694153520, + "gmtoffset": 36000 + } + }, + "tradingPeriods": [ + [ + { + "timezone": "AEST", + "start": 1694131200, + "end": 1694153520, + "gmtoffset": 36000 + } + ] + ], + "dataGranularity": "1m", + "range": "1d", + "validRanges": ["1d", "5d", "1mo", "3mo", "6mo", "ytd", "max"] + }, + "timestamp": [ + 1694131500, 1694131560, 1694131620, 1694131680, 1694131740, + 1694131800, 1694131860, 1694131920, 1694131980, 1694132040, + 1694132100, 1694132160, 1694132220, 1694132280, 1694132340, + 1694132400, 1694132460, 1694132520, 1694132580, 1694132640, + 1694132700, 1694132760, 1694132820, 1694132880, 1694132940, + 1694133000, 1694133060, 1694133120, 1694133180, 1694133240, + 1694133300, 1694133360, 1694133420, 1694133480, 1694133540, + 1694133600, 1694133660, 1694133720, 1694133780, 1694133840, + 1694133900, 1694133960, 1694134020, 1694134080, 1694134140, + 1694134200, 1694134260, 1694134320, 1694134380, 1694134440, + 1694134500, 1694134560, 1694134620, 1694134680, 1694134740, + 1694134800, 1694134860, 1694134920, 1694134980, 1694135040, + 1694135100, 1694135160, 1694135220, 1694135280, 1694135340, + 1694135400, 1694135460, 1694135520, 1694135580, 1694135640, + 1694135700, 1694135760, 1694135820, 1694135880, 1694135940, + 1694136000, 1694136060, 1694136120, 1694136180, 1694136240, + 1694136300, 1694136360, 1694136420, 1694136480, 1694136540, + 1694136600, 1694136660, 1694136720, 1694136780, 1694136840, + 1694136900, 1694136960, 1694137020, 1694137080, 1694137140, + 1694137200, 1694137260, 1694137320, 1694137380, 1694137440, + 1694137500, 1694137560, 1694137620, 1694137680, 1694137740, + 1694137800, 1694137860, 1694137920, 1694137980, 1694138040, + 1694138100, 1694138160, 1694138220, 1694138280, 1694138340, + 1694138400, 1694138460, 1694138520, 1694138580, 1694138640, + 1694138700, 1694138760, 1694138820, 1694138880, 1694138940, + 1694139000, 1694139060, 1694139120, 1694139180, 1694139240, + 1694139300, 1694139360, 1694139420, 1694139480, 1694139540, + 1694139600, 1694139660, 1694139720, 1694139780, 1694139840, + 1694139900, 1694139960, 1694140020, 1694140080, 1694140140, + 1694140200, 1694140260, 1694140320, 1694140380, 1694140440, + 1694140500, 1694140560, 1694140620, 1694140680, 1694140740, + 1694140800, 1694140860, 1694140920, 1694140980, 1694141040, + 1694141100, 1694141160, 1694141220, 1694141280, 1694141340, + 1694141400, 1694141460, 1694141520, 1694141580, 1694141640, + 1694141700, 1694141760, 1694141820, 1694141880, 1694141940, + 1694142000, 1694142060, 1694142120, 1694142180, 1694142240, + 1694142300, 1694142360, 1694142420, 1694142480, 1694142540, + 1694142600, 1694142660, 1694142720, 1694142780, 1694142840, + 1694142900, 1694142960, 1694143020, 1694143080, 1694143140, + 1694143200, 1694143260, 1694143320, 1694143380, 1694143440, + 1694143500, 1694143560, 1694143620, 1694143680, 1694143740, + 1694143800, 1694143860, 1694143920, 1694143980, 1694144040, + 1694144100, 1694144160, 1694144220, 1694144280, 1694144340, + 1694144400, 1694144460, 1694144520, 1694144580, 1694144640, + 1694144700, 1694144760, 1694144820, 1694144880, 1694144940, + 1694145000, 1694145060, 1694145120, 1694145180, 1694145240, + 1694145300, 1694145360, 1694145420, 1694145480, 1694145540, + 1694145600, 1694145660, 1694145720, 1694145780, 1694145840, + 1694145900, 1694145960, 1694146020, 1694146080, 1694146140, + 1694146200, 1694146260, 1694146320, 1694146380, 1694146440, + 1694146500, 1694146560, 1694146620, 1694146680, 1694146740, + 1694146800, 1694146860, 1694146920, 1694146980, 1694147040, + 1694147100, 1694147160, 1694147220, 1694147280, 1694147340, + 1694147400, 1694147460, 1694147520, 1694147580, 1694147640, + 1694147700, 1694147760, 1694147820, 1694147880, 1694147940, + 1694148000, 1694148060, 1694148120, 1694148180, 1694148240, + 1694148300, 1694148360, 1694148420, 1694148480, 1694148540, + 1694148600, 1694148660, 1694148720, 1694148780, 1694148840, + 1694148900, 1694148960, 1694149020, 1694149080, 1694149140, + 1694149200, 1694149260, 1694149320, 1694149380, 1694149440, + 1694149500, 1694149560, 1694149620, 1694149680, 1694149740, + 1694149800, 1694149860, 1694149920, 1694149980, 1694150040, + 1694150100, 1694150160, 1694150220, 1694150280, 1694150340, + 1694150400, 1694150460, 1694150520, 1694150580, 1694150640, + 1694150700, 1694150760, 1694150820, 1694150880, 1694150940, + 1694151000, 1694151060, 1694151120, 1694151180, 1694151240, + 1694151300, 1694151360, 1694151420, 1694151480, 1694151540, + 1694151600, 1694151660, 1694151720, 1694151780, 1694151840, + 1694151900, 1694151960, 1694152020, 1694152080, 1694152140, + 1694152200, 1694152260, 1694152320, 1694152380, 1694152440, + 1694152500, 1694152560, 1694152620, 1694152680, 1694152740, + 1694152800, 1694152860, 1694152920, 1694152980, 1694153040, + 1694153100, 1694153160, 1694153220, 1694153280, 1694153340, + 1694153400, 1694153460 + ], + "indicators": { + "quote": [ + { + "volume": [ + 0, + null, + null, + null, + null, + 37, + 1, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 87, + null, + null, + null, + null, + null, + 21, + null, + 17, + null, + null, + null, + null, + 1, + 716, + null, + null, + 5, + null, + null, + null, + null, + null, + 20, + null, + null, + 110, + null, + null, + 59, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 2, + 356, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 307, + null, + 34, + null, + null, + null, + 2, + 285, + null, + 19, + null, + 17, + null, + null, + null, + null, + null, + null, + null, + null, + 715, + null, + null, + null, + null, + null, + null, + null, + null, + 17, + null, + null, + null, + null, + null, + 35, + null, + 9, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 715, + null, + null, + 17, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 6885, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 18, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 5, + 45, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 2, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 17, + null, + null, + null, + null, + 17, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 1, + null, + 1, + 1, + null, + null, + 13, + null, + null, + 109, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 2, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 49, + 249, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "low": [ + 55.970001220703125, + null, + null, + null, + null, + 55.91999816894531, + 55.91999816894531, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.939998626708984, + null, + null, + null, + null, + null, + 55.900001525878906, + null, + 55.869998931884766, + null, + null, + null, + null, + 55.83000183105469, + 55.79999923706055, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + null, + 55.849998474121094, + null, + null, + 55.779998779296875, + null, + null, + 55.79999923706055, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.880001068115234, + 55.880001068115234, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.90999984741211, + null, + 55.880001068115234, + null, + null, + null, + 55.869998931884766, + 55.849998474121094, + null, + 55.849998474121094, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + null, + null, + null, + null, + null, + null, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + null, + 55.86000061035156, + null, + 55.86000061035156, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.83000183105469, + null, + null, + 55.849998474121094, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.86000061035156, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.849998474121094, + 55.810001373291016, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.83000183105469, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + null, + 55.790000915527344, + 55.79999923706055, + null, + null, + 55.790000915527344, + null, + null, + 55.77000045776367, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.779998779296875, + 55.77000045776367, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "high": [ + 55.970001220703125, + null, + null, + null, + null, + 55.91999816894531, + 55.91999816894531, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.939998626708984, + null, + null, + null, + null, + null, + 55.900001525878906, + null, + 55.869998931884766, + null, + null, + null, + null, + 55.83000183105469, + 55.79999923706055, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + null, + 55.849998474121094, + null, + null, + 55.86000061035156, + null, + null, + 55.79999923706055, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.880001068115234, + 55.880001068115234, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.90999984741211, + null, + 55.880001068115234, + null, + null, + null, + 55.869998931884766, + 55.849998474121094, + null, + 55.849998474121094, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + null, + null, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + null, + 55.86000061035156, + null, + 55.86000061035156, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.83000183105469, + null, + null, + 55.849998474121094, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.869998931884766, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.869998931884766, + 55.869998931884766, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.83000183105469, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + null, + 55.790000915527344, + 55.79999923706055, + null, + null, + 55.790000915527344, + null, + null, + 55.77000045776367, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + 55.77000045776367, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "close": [ + 55.970001220703125, + null, + null, + null, + null, + 55.91999816894531, + 55.91999816894531, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.939998626708984, + null, + null, + null, + null, + null, + 55.900001525878906, + null, + 55.869998931884766, + null, + null, + null, + null, + 55.83000183105469, + 55.79999923706055, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + null, + 55.849998474121094, + null, + null, + 55.779998779296875, + null, + null, + 55.79999923706055, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.880001068115234, + 55.880001068115234, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.90999984741211, + null, + 55.880001068115234, + null, + null, + null, + 55.869998931884766, + 55.849998474121094, + null, + 55.849998474121094, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + null, + null, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + null, + 55.86000061035156, + null, + 55.86000061035156, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.83000183105469, + null, + null, + 55.849998474121094, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.869998931884766, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.869998931884766, + 55.810001373291016, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.83000183105469, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + null, + 55.790000915527344, + 55.79999923706055, + null, + null, + 55.790000915527344, + null, + null, + 55.77000045776367, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.779998779296875, + 55.77000045776367, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "open": [ + 55.970001220703125, + null, + null, + null, + null, + 55.91999816894531, + 55.91999816894531, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.939998626708984, + null, + null, + null, + null, + null, + 55.900001525878906, + null, + 55.869998931884766, + null, + null, + null, + null, + 55.83000183105469, + 55.79999923706055, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + null, + 55.849998474121094, + null, + null, + 55.86000061035156, + null, + null, + 55.79999923706055, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.880001068115234, + 55.880001068115234, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.90999984741211, + null, + 55.880001068115234, + null, + null, + null, + 55.869998931884766, + 55.849998474121094, + null, + 55.849998474121094, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + null, + null, + null, + null, + null, + null, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + null, + 55.86000061035156, + null, + 55.86000061035156, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.83000183105469, + null, + null, + 55.849998474121094, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.86000061035156, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.849998474121094, + 55.869998931884766, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.83000183105469, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.84000015258789, + null, + null, + null, + null, + 55.81999969482422, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + null, + 55.790000915527344, + 55.79999923706055, + null, + null, + 55.790000915527344, + null, + null, + 55.77000045776367, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 55.790000915527344, + 55.77000045776367, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + } + } + ], + "error": null + } +} diff --git a/beanprice/sources/yahoo.py b/beanprice/sources/yahoo.py index b08a2c2..0d74e1c 100644 --- a/beanprice/sources/yahoo.py +++ b/beanprice/sources/yahoo.py @@ -100,12 +100,12 @@ def get_price_series(ticker: str, timestamp_array = result['timestamp'] close_array = result['indicators']['quote'][0]['close'] series = [(datetime.fromtimestamp(timestamp, tz=tzone), Decimal(price)) - for timestamp, price in zip(timestamp_array, close_array)] + for timestamp, price in zip(timestamp_array, close_array) if price] currency = result['meta']['currency'] return series, currency - +_USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0' class Source(source.Source): "Yahoo Finance CSV API price extractor." @@ -113,8 +113,9 @@ def get_latest_price(self, ticker: str) -> Optional[source.SourcePrice]: """See contract in beanprice.source.Source.""" session = requests.Session() - session.headers.update({'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0'}) - session.get('https://fc.yahoo.com') # This populates the correct cookies in the session + session.headers.update({'User-Agent': _USER_AGENT}) + # This populates the correct cookies in the session + session.get('https://fc.yahoo.com') crumb = session.get('https://query1.finance.yahoo.com/v1/test/getcrumb').text url = "https://query1.finance.yahoo.com/v7/finance/quote" diff --git a/beanprice/sources/yahoo_test.py b/beanprice/sources/yahoo_test.py index fc4b8b7..ec9479c 100644 --- a/beanprice/sources/yahoo_test.py +++ b/beanprice/sources/yahoo_test.py @@ -196,6 +196,23 @@ def test_parse_response_no_timestamp(self): srcprice = yahoo.Source().get_historical_price( 'XSP.TO', datetime.datetime(2017, 11, 1, 16, 0, 0, tzinfo=tz.tzutc())) + def test_get_price_series_with_null_close_prices(self): + with open( + "beanprice/fixtures/close_price_with_null.json", encoding="utf8" + ) as response_json: + response = MockResponse(response_json.read()) + with mock.patch("requests.get", return_value=response): + try: + yahoo.get_price_series( + "BGBL.AX", + datetime.datetime(2023, 6, 28, 16, 0, 0, tzinfo=tz.tzutc()), + datetime.datetime(2023, 7, 3, 16, 0, 0, tzinfo=tz.tzutc()), + ) + except TypeError: + # it should not raise TypeError + # TypeError: conversion from NoneType to Decimal is not supported + self.fail("get_price_series() raised TypeError unexpectedly!") + if __name__ == '__main__': unittest.main()