@@ -545,10 +545,9 @@ async def test_get_sol_price_simple(self, mock_swap_data):
545
545
"""Test simple SOL price retrieval."""
546
546
client = SVMTokenAPI (api_key = "test_key" )
547
547
548
- with patch .object (client , "manager" ) as mock_manager :
549
- mock_response = MagicMock ()
550
- mock_response .data = {"data" : mock_swap_data }
551
- mock_manager .get = AsyncMock (return_value = mock_response )
548
+ with patch .object (client , "get_swaps" ) as mock_get_swaps :
549
+ # Mock get_swaps to return list of dicts
550
+ mock_get_swaps .return_value = mock_swap_data
552
551
553
552
price = await client .get_sol_price ()
554
553
assert isinstance (price , float )
@@ -559,10 +558,9 @@ async def test_get_sol_price_with_stats(self, mock_swap_data):
559
558
"""Test SOL price with detailed statistics."""
560
559
client = SVMTokenAPI (api_key = "test_key" )
561
560
562
- with patch .object (client , "manager" ) as mock_manager :
563
- mock_response = MagicMock ()
564
- mock_response .data = {"data" : mock_swap_data }
565
- mock_manager .get = AsyncMock (return_value = mock_response )
561
+ with patch .object (client , "get_swaps" ) as mock_get_swaps :
562
+ # Mock get_swaps to return list of dicts
563
+ mock_get_swaps .return_value = mock_swap_data
566
564
567
565
stats = await client .get_sol_price (include_stats = True )
568
566
assert isinstance (stats , dict )
@@ -577,29 +575,27 @@ async def test_smart_caching_behavior(self, mock_swap_data):
577
575
"""Test smart caching with automatic cache hits."""
578
576
client = SVMTokenAPI (api_key = "test_key" )
579
577
580
- with patch .object (client , "manager" ) as mock_manager :
581
- mock_response = MagicMock ()
582
- mock_response .data = {"data" : mock_swap_data }
583
- mock_manager .get = AsyncMock (return_value = mock_response )
578
+ with patch .object (client , "get_swaps" ) as mock_get_swaps :
579
+ # Mock get_swaps to return list of dicts
580
+ mock_get_swaps .return_value = mock_swap_data
584
581
585
582
# First call
586
583
price1 = await client .get_sol_price ()
587
- assert mock_manager . get .call_count == 1
584
+ assert mock_get_swaps .call_count == 1
588
585
589
586
# Second call should use cache
590
587
price2 = await client .get_sol_price ()
591
588
assert price1 == price2
592
- assert mock_manager . get .call_count == 1 # No additional API call
589
+ assert mock_get_swaps .call_count == 1 # No additional API call
593
590
594
591
@pytest .mark .anyio
595
592
async def test_no_data_handling (self ):
596
593
"""Test graceful handling when no swap data available."""
597
594
client = SVMTokenAPI (api_key = "test_key" )
598
595
599
- with patch .object (client , "manager" ) as mock_manager :
600
- mock_response = MagicMock ()
601
- mock_response .data = {"data" : []}
602
- mock_manager .get = AsyncMock (return_value = mock_response )
596
+ with patch .object (client , "get_swaps" ) as mock_get_swaps :
597
+ # Mock get_swaps to return empty list
598
+ mock_get_swaps .return_value = []
603
599
604
600
price = await client .get_sol_price ()
605
601
assert price is None
@@ -611,52 +607,44 @@ async def test_progressive_retry_logic(self):
611
607
612
608
# Mock responses: empty, then small data, then good data
613
609
mock_responses = [
614
- MagicMock (data = {"data" : []}), # First attempt fails
615
- MagicMock (
616
- data = {
617
- "data" : [
618
- {
619
- "input_mint" : SOL_MINT ,
620
- "output_mint" : USDC_MINT ,
621
- "input_amount" : 1_000_000_000 ,
622
- "output_amount" : 100_000_000 ,
623
- }
624
- ]
625
- }
626
- ), # Second has minimal data
627
- MagicMock (
628
- data = {
629
- "data" : [
630
- {
631
- "input_mint" : SOL_MINT ,
632
- "output_mint" : USDC_MINT ,
633
- "input_amount" : 1_000_000_000 ,
634
- "output_amount" : 100_000_000 ,
635
- },
636
- {
637
- "input_mint" : USDC_MINT ,
638
- "output_mint" : SOL_MINT ,
639
- "input_amount" : 50_000_000 ,
640
- "output_amount" : 500_000_000 ,
641
- },
642
- {
643
- "input_mint" : SOL_MINT ,
644
- "output_mint" : USDC_MINT ,
645
- "input_amount" : 2_000_000_000 ,
646
- "output_amount" : 200_000_000 ,
647
- },
648
- ]
610
+ [], # First attempt fails
611
+ [
612
+ {
613
+ "input_mint" : SOL_MINT ,
614
+ "output_mint" : USDC_MINT ,
615
+ "input_amount" : 1_000_000_000 ,
616
+ "output_amount" : 100_000_000 ,
649
617
}
650
- ), # Third attempt has good data
618
+ ], # Second has minimal data
619
+ [
620
+ {
621
+ "input_mint" : SOL_MINT ,
622
+ "output_mint" : USDC_MINT ,
623
+ "input_amount" : 1_000_000_000 ,
624
+ "output_amount" : 100_000_000 ,
625
+ },
626
+ {
627
+ "input_mint" : USDC_MINT ,
628
+ "output_mint" : SOL_MINT ,
629
+ "input_amount" : 50_000_000 ,
630
+ "output_amount" : 500_000_000 ,
631
+ },
632
+ {
633
+ "input_mint" : SOL_MINT ,
634
+ "output_mint" : USDC_MINT ,
635
+ "input_amount" : 2_000_000_000 ,
636
+ "output_amount" : 200_000_000 ,
637
+ },
638
+ ], # Third attempt has good data
651
639
]
652
640
653
- with patch .object (client , "manager " ) as mock_manager :
654
- mock_manager . get = AsyncMock ( side_effect = mock_responses )
641
+ with patch .object (client , "get_swaps " ) as mock_get_swaps :
642
+ mock_get_swaps . side_effect = mock_responses
655
643
656
644
price = await client .get_sol_price ()
657
645
assert isinstance (price , float )
658
646
# Should have made multiple attempts
659
- assert mock_manager . get .call_count >= 2
647
+ assert mock_get_swaps .call_count >= 2
660
648
661
649
@pytest .mark .anyio
662
650
async def test_outlier_filtering (self ):
0 commit comments