2
2
import unittest
3
3
from unittest .mock import call , patch
4
4
5
+ from randobot .generator import ArgFormat
5
6
from randobot .handler import RandoHandler
6
7
7
8
@@ -10,7 +11,7 @@ def generate_seed(self, randomizer_path, permalink, username, generate_spoiler_l
10
11
raise Exception ("Method not properly mocked" )
11
12
12
13
13
- def mock_generate_seed_standard (randomizer_path , permalink , username , generate_spoiler_log , new_args_format = False ):
14
+ def mock_generate_seed_standard (randomizer_path , permalink , username , generate_spoiler_log , args_format = ArgFormat . V110 ):
14
15
return {
15
16
"file_name" : "FILENAME" ,
16
17
"permalink" : f"PERMA_{ permalink } " ,
@@ -19,7 +20,8 @@ def mock_generate_seed_standard(randomizer_path, permalink, username, generate_s
19
20
}
20
21
21
22
22
- def mock_generate_seed_spoiler_log (randomizer_path , permalink , username , generate_spoiler_log , new_args_format = False ):
23
+ def mock_generate_seed_spoiler_log (randomizer_path , permalink , username , generate_spoiler_log ,
24
+ args_format = ArgFormat .V110 ):
23
25
if not generate_spoiler_log :
24
26
raise Exception ("Did not generate spoiler log" )
25
27
@@ -411,7 +413,7 @@ async def test_rollmpseed(self, mock_send_message, mock_set_raceinfo, mock_gener
411
413
"MS4xMC4wXzVmMWJhZTYAQQDfsGDs4E8ExPETjHsAAEg+AAAAIA==" ,
412
414
"test_user" ,
413
415
generate_spoiler_log = False ,
414
- new_args_format = True ,
416
+ args_format = ArgFormat . V111 ,
415
417
),
416
418
])
417
419
@@ -448,7 +450,7 @@ async def test_miniblins(self, mock_send_message, mock_set_raceinfo, mock_genera
448
450
"MS4xMC4wXzVmMWJhZTYAQQBNMEBMAEAEEvETzn8AEEh+SAEAIw==" ,
449
451
"test_user" ,
450
452
generate_spoiler_log = False ,
451
- new_args_format = True ,
453
+ args_format = ArgFormat . V111 ,
452
454
),
453
455
])
454
456
@@ -581,7 +583,7 @@ async def test_startmpspoilerlograce(self, mock_send_message, mock_set_raceinfo,
581
583
"MS4xMC4wXzVmMWJhZTYAQQDfsGDs4E8ExPETjHsAAEg+AAAAAA==" ,
582
584
"test_user" ,
583
585
generate_spoiler_log = True ,
584
- new_args_format = True ,
586
+ args_format = ArgFormat . V111 ,
585
587
),
586
588
])
587
589
@@ -592,6 +594,54 @@ async def test_startmpspoilerlograce(self, mock_send_message, mock_set_raceinfo,
592
594
self .assertEqual (state ["seed_hash" ], "SEED HASH" )
593
595
self .assertEqual (state ["file_name" ], "FILENAME" )
594
596
597
+ @patch ("asyncio.sleep" , return_value = async_return (None ))
598
+ @patch .object (MockGenerator , "generate_seed" , side_effect = mock_generate_seed_spoiler_log )
599
+ @patch .object (RandoHandler , "set_raceinfo" , return_value = async_return (None ))
600
+ @patch .object (RandoHandler , "send_message" , return_value = async_return (None ))
601
+ async def test_randomsettings (self , mock_send_message , mock_set_raceinfo , mock_generate_seed , mock_sleep ):
602
+ generator = MockGenerator ()
603
+ state = {}
604
+ handler = create_rando_handler (generator , state )
605
+ await handler .ex_randomsettings ([], get_mock_message_data ())
606
+
607
+ await wait_for_all_async_tasks ()
608
+
609
+ self .assertEqual (mock_send_message .call_count , 4 )
610
+ mock_send_message .assert_has_calls ([
611
+ call ("Rolling seed..." ),
612
+ call ("Permalink: PERMA_UlMxLjQuMC1kZXYzAEEAgQU=" ),
613
+ call ("Seed Hash: SEED HASH" ),
614
+ call (
615
+ "Please note that this seed uses the Random Settings RS1.4.0-dev3 "
616
+ "build of the randomizer. "
617
+ "Download: https://github.com/Aelire/wwrando/releases/tag/RS1.4.0-dev3 "
618
+ "Tracker: https://jaysc.github.io/tww-rando-tracker-rs/"
619
+ ),
620
+
621
+ ])
622
+
623
+ self .assertEqual (mock_set_raceinfo .call_count , 1 )
624
+ mock_set_raceinfo .assert_has_calls ([
625
+ call ("PERMA_UlMxLjQuMC1kZXYzAEEAgQU= | Seed Hash: SEED HASH" , False , False ),
626
+ ])
627
+
628
+ self .assertEqual (mock_generate_seed .call_count , 1 )
629
+ mock_generate_seed .assert_has_calls ([
630
+ call (
631
+ "wwrando-random-settings" ,
632
+ "UlMxLjQuMC1kZXYzAEEAgQU=" ,
633
+ "test_user" ,
634
+ generate_spoiler_log = True ,
635
+ args_format = ArgFormat .RS14 ,
636
+ ),
637
+ ])
638
+
639
+ self .assertEqual (state ["example_permalink" ], "UlMxLjQuMC1kZXYzAEEAgQU=" )
640
+ self .assertEqual (state ["permalink" ], "PERMA_UlMxLjQuMC1kZXYzAEEAgQU=" )
641
+ self .assertEqual (state ["random_settings_spoiler_log_url" ], "SPOILER_LOG_URL" )
642
+ self .assertEqual (state ["random_settings_spoiler_log_unlocked" ], False )
643
+ self .assertEqual (state ["seed_hash" ], "SEED HASH" )
644
+
595
645
596
646
if __name__ == "__main__" :
597
647
unittest .main ()
0 commit comments