MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_random

Method test_random

Lib/test/test_regrtest.py:1060–1111  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1058 stats=0)
1059
1060 def test_random(self):
1061 # test -r and --randseed command line option
1062 code = textwrap.dedent("""
1063 import random
1064 print("TESTRANDOM: %s" % random.randint(1, 1000))
1065 """)
1066 test = self.create_test('random', code)
1067
1068 # first run to get the output with the random seed
1069 output = self.run_tests('-r', test, exitcode=EXITCODE_NO_TESTS_RAN)
1070 randseed = self.parse_random_seed(output)
1071 match = self.regex_search(r'TESTRANDOM: ([0-9]+)', output)
1072 test_random = int(match.group(1))
1073
1074 # try to reproduce with the random seed
1075 output = self.run_tests('-r', f'--randseed={randseed}', test,
1076 exitcode=EXITCODE_NO_TESTS_RAN)
1077 randseed2 = self.parse_random_seed(output)
1078 self.assertEqual(randseed2, randseed)
1079
1080 match = self.regex_search(r'TESTRANDOM: ([0-9]+)', output)
1081 test_random2 = int(match.group(1))
1082 self.assertEqual(test_random2, test_random)
1083
1084 # check that random.seed is used by default
1085 output = self.run_tests(test, exitcode=EXITCODE_NO_TESTS_RAN)
1086 randseed = self.parse_random_seed(output)
1087 self.assertTrue(randseed.isdigit(), randseed)
1088
1089 # check SOURCE_DATE_EPOCH (integer)
1090 timestamp = '1697839080'
1091 env = dict(os.environ, SOURCE_DATE_EPOCH=timestamp)
1092 output = self.run_tests('-r', test, exitcode=EXITCODE_NO_TESTS_RAN,
1093 env=env)
1094 randseed = self.parse_random_seed(output)
1095 self.assertEqual(randseed, timestamp)
1096 self.check_line(output, 'TESTRANDOM: 520')
1097
1098 # check SOURCE_DATE_EPOCH (string)
1099 env = dict(os.environ, SOURCE_DATE_EPOCH='XYZ')
1100 output = self.run_tests('-r', test, exitcode=EXITCODE_NO_TESTS_RAN,
1101 env=env)
1102 randseed = self.parse_random_seed(output)
1103 self.assertEqual(randseed, 'XYZ')
1104 self.check_line(output, 'TESTRANDOM: 22')
1105
1106 # check SOURCE_DATE_EPOCH (empty string): ignore the env var
1107 env = dict(os.environ, SOURCE_DATE_EPOCH='')
1108 output = self.run_tests('-r', test, exitcode=EXITCODE_NO_TESTS_RAN,
1109 env=env)
1110 randseed = self.parse_random_seed(output)
1111 self.assertTrue(randseed.isdigit(), randseed)
1112
1113 def test_fromfile(self):
1114 # test --fromfile

Callers

nothing calls this directly

Calls 10

run_testsMethod · 0.95
dedentMethod · 0.80
create_testMethod · 0.80
parse_random_seedMethod · 0.80
regex_searchMethod · 0.80
assertTrueMethod · 0.80
check_lineMethod · 0.80
groupMethod · 0.45
assertEqualMethod · 0.45
isdigitMethod · 0.45

Tested by

no test coverage detected