diff --git a/evennia/contrib/tests.py b/evennia/contrib/tests.py index bbf6d29d43..d89ac6c7b6 100644 --- a/evennia/contrib/tests.py +++ b/evennia/contrib/tests.py @@ -985,3 +985,24 @@ class TestUnixCommand(CommandTest): lines = ret.splitlines() self.assertTrue(any(l.startswith("usage:") for l in lines)) self.assertTrue(any(l.startswith("dummy: error:") for l in lines)) + + +from evennia.contrib import generator + +SIMPLE_GENERATOR = generator.Generator("simple", "[01]{2}") + +class TestGenerator(EvenniaTest): + + def test_generate(self): + """Generate and fail when exhausted.""" + generated = [] + for i in range(4): + generated.append(SIMPLE_GENERATOR.generate()) + + generated.sort() + self.assertEqual(generated, ["00", "01", "10", "11"]) + + # At this point, we have generated 4 strings. + # We can't generate one more + with self.assertRaises(generator.ExhaustedGenerator): + SIMPLE_GENERATOR.generate()