From 8d3e946f2d588179ccd92ad8563d1dc6d07b332b Mon Sep 17 00:00:00 2001 From: Henddher Pedroza Date: Sun, 14 Oct 2018 16:42:28 -0500 Subject: [PATCH 1/7] test evennia.utils.create.create_script --- evennia/utils/test_resources.py | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/evennia/utils/test_resources.py b/evennia/utils/test_resources.py index b4124b7219..8e954592ad 100644 --- a/evennia/utils/test_resources.py +++ b/evennia/utils/test_resources.py @@ -66,3 +66,38 @@ class EvenniaTest(TestCase): self.account.delete() self.account2.delete() super(EvenniaTest, self).tearDown() + + +import unittest + +class TestScript(DefaultScript): + + # script test params + call_super = None + interval = 1 + + def at_script_creation(self): + if self.call_super: + super(TestScript, self).at_script_creation() + self.key = 'testing_script' + # self.interval = 10 + # self.repeats = 1 + self.persistent = False + +class TestCreateScript(EvenniaTest): + + def setUp(self): + super(EvenniaTest, self).setUp() + + def tearDown(self): + super(EvenniaTest, self).tearDown() + + @unittest.expectedFailure + def test_create_script(self): + TestScript.call_super = True + + script = create.create_script(TestScript, key="TestScript") + assert script is not None + assert script.interval == 1 + assert script.repeats == 0 + assert script.key == 'testing_script' From 7664065a454bed6f426688f35b561ecb7e299d5f Mon Sep 17 00:00:00 2001 From: Henddher Pedroza Date: Sun, 14 Oct 2018 17:09:01 -0500 Subject: [PATCH 2/7] Refactoring. Test to reproduce #1663 --- evennia/utils/test_resources.py | 42 ++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/evennia/utils/test_resources.py b/evennia/utils/test_resources.py index 8e954592ad..15cf862dd7 100644 --- a/evennia/utils/test_resources.py +++ b/evennia/utils/test_resources.py @@ -70,20 +70,6 @@ class EvenniaTest(TestCase): import unittest -class TestScript(DefaultScript): - - # script test params - call_super = None - interval = 1 - - def at_script_creation(self): - if self.call_super: - super(TestScript, self).at_script_creation() - self.key = 'testing_script' - # self.interval = 10 - # self.repeats = 1 - self.persistent = False - class TestCreateScript(EvenniaTest): def setUp(self): @@ -92,12 +78,30 @@ class TestCreateScript(EvenniaTest): def tearDown(self): super(EvenniaTest, self).tearDown() - @unittest.expectedFailure def test_create_script(self): - TestScript.call_super = True + class TestScript(DefaultScript): + def at_script_creation(self): + self.key = 'testing_script' + self.interval = 10 + self.persistent = False - script = create.create_script(TestScript, key="TestScript") + script = create.create_script(TestScript) assert script is not None - assert script.interval == 1 - assert script.repeats == 0 + assert script.interval == 10 assert script.key == 'testing_script' + + # @unittest.expectedFailure + def test_create_script_w_one_repeat(self): + class TestScript(DefaultScript): + def at_script_creation(self): + self.key = 'testing_script' + self.interval = 10 + self.repeats = 1 + self.persistent = False + + with self.assertRaises(TypeError): + script = create.create_script(TestScript) + # assert script is not None + # assert script.interval == 10 + # assert script.repeats == 1 + # assert script.key == 'testing_script' From ea61719edf8ae4dddd6c73265125289119c3a598 Mon Sep 17 00:00:00 2001 From: Henddher Pedroza Date: Sun, 14 Oct 2018 19:07:46 -0500 Subject: [PATCH 3/7] Must use different classes for each test so the django RuntimeWarning doesn't occur --- evennia/utils/test_resources.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/evennia/utils/test_resources.py b/evennia/utils/test_resources.py index 15cf862dd7..a98627a67c 100644 --- a/evennia/utils/test_resources.py +++ b/evennia/utils/test_resources.py @@ -69,6 +69,7 @@ class EvenniaTest(TestCase): import unittest +import inspect class TestCreateScript(EvenniaTest): @@ -79,29 +80,29 @@ class TestCreateScript(EvenniaTest): super(EvenniaTest, self).tearDown() def test_create_script(self): - class TestScript(DefaultScript): + class TestScriptA(DefaultScript): def at_script_creation(self): - self.key = 'testing_script' + self.key = 'test_script' self.interval = 10 self.persistent = False - script = create.create_script(TestScript) + script = create.create_script(TestScriptA, key='test_script') assert script is not None assert script.interval == 10 - assert script.key == 'testing_script' + assert script.key == 'test_script' # @unittest.expectedFailure def test_create_script_w_one_repeat(self): - class TestScript(DefaultScript): + class TestScriptB(DefaultScript): def at_script_creation(self): - self.key = 'testing_script' + self.key = 'test_script' self.interval = 10 self.repeats = 1 self.persistent = False with self.assertRaises(TypeError): - script = create.create_script(TestScript) + script = create.create_script(TestScriptB, key='test_script') # assert script is not None # assert script.interval == 10 # assert script.repeats == 1 - # assert script.key == 'testing_script' + # assert script.key == 'test_script' From 246cd57243924f3c3a1793e1fc329b6cb399c605 Mon Sep 17 00:00:00 2001 From: Henddher Pedroza Date: Sun, 14 Oct 2018 19:09:38 -0500 Subject: [PATCH 4/7] Use unittest.expectFailure decoration --- evennia/utils/test_resources.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/evennia/utils/test_resources.py b/evennia/utils/test_resources.py index a98627a67c..ac26fe40aa 100644 --- a/evennia/utils/test_resources.py +++ b/evennia/utils/test_resources.py @@ -91,7 +91,7 @@ class TestCreateScript(EvenniaTest): assert script.interval == 10 assert script.key == 'test_script' - # @unittest.expectedFailure + @unittest.expectedFailure def test_create_script_w_one_repeat(self): class TestScriptB(DefaultScript): def at_script_creation(self): @@ -100,9 +100,8 @@ class TestCreateScript(EvenniaTest): self.repeats = 1 self.persistent = False - with self.assertRaises(TypeError): - script = create.create_script(TestScriptB, key='test_script') - # assert script is not None - # assert script.interval == 10 - # assert script.repeats == 1 - # assert script.key == 'test_script' + script = create.create_script(TestScriptB, key='test_script') + assert script is not None + assert script.interval == 10 + assert script.repeats == 1 + assert script.key == 'test_script' From 7c11d5a64c38a56194135b9f3b8c1727fc1719c5 Mon Sep 17 00:00:00 2001 From: Henddher Pedroza Date: Sat, 20 Oct 2018 22:39:53 -0500 Subject: [PATCH 5/7] Another control-group test (repeats = 2) - it passes --- evennia/utils/test_resources.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/evennia/utils/test_resources.py b/evennia/utils/test_resources.py index ac26fe40aa..a42e394b78 100644 --- a/evennia/utils/test_resources.py +++ b/evennia/utils/test_resources.py @@ -73,12 +73,6 @@ import inspect class TestCreateScript(EvenniaTest): - def setUp(self): - super(EvenniaTest, self).setUp() - - def tearDown(self): - super(EvenniaTest, self).tearDown() - def test_create_script(self): class TestScriptA(DefaultScript): def at_script_creation(self): @@ -92,7 +86,7 @@ class TestCreateScript(EvenniaTest): assert script.key == 'test_script' @unittest.expectedFailure - def test_create_script_w_one_repeat(self): + def test_create_script_w_repeats_equal_1(self): class TestScriptB(DefaultScript): def at_script_creation(self): self.key = 'test_script' @@ -100,8 +94,28 @@ class TestCreateScript(EvenniaTest): self.repeats = 1 self.persistent = False + # import ipdb + # ipdb.set_trace() + script = create.create_script(TestScriptB, key='test_script') assert script is not None assert script.interval == 10 assert script.repeats == 1 assert script.key == 'test_script' + + def test_create_script_w_repeats_equal_2(self): + class TestScriptC(DefaultScript): + def at_script_creation(self): + self.key = 'test_script' + self.interval = 10 + self.repeats = 2 + self.persistent = False + + # import ipdb + # ipdb.set_trace() + + script = create.create_script(TestScriptC, key='test_script') + assert script is not None + assert script.interval == 10 + assert script.repeats == 2 + assert script.key == 'test_script' From d408a7e8ad0488d16dd456949f9be3495d39454e Mon Sep 17 00:00:00 2001 From: Henddher Pedroza Date: Sun, 21 Oct 2018 09:21:58 -0500 Subject: [PATCH 6/7] Add Script test with repeats=1 and start_delay=True --- evennia/utils/test_resources.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/evennia/utils/test_resources.py b/evennia/utils/test_resources.py index a42e394b78..c044d776fb 100644 --- a/evennia/utils/test_resources.py +++ b/evennia/utils/test_resources.py @@ -84,6 +84,7 @@ class TestCreateScript(EvenniaTest): assert script is not None assert script.interval == 10 assert script.key == 'test_script' + script.stop() @unittest.expectedFailure def test_create_script_w_repeats_equal_1(self): @@ -94,14 +95,12 @@ class TestCreateScript(EvenniaTest): self.repeats = 1 self.persistent = False - # import ipdb - # ipdb.set_trace() - script = create.create_script(TestScriptB, key='test_script') assert script is not None assert script.interval == 10 assert script.repeats == 1 assert script.key == 'test_script' + script.stop() def test_create_script_w_repeats_equal_2(self): class TestScriptC(DefaultScript): @@ -111,11 +110,25 @@ class TestCreateScript(EvenniaTest): self.repeats = 2 self.persistent = False - # import ipdb - # ipdb.set_trace() - script = create.create_script(TestScriptC, key='test_script') assert script is not None assert script.interval == 10 assert script.repeats == 2 assert script.key == 'test_script' + script.stop() + + def test_create_script_w_repeats_equal_1_and_delayed(self): + class TestScriptD(DefaultScript): + def at_script_creation(self): + self.key = 'test_script' + self.interval = 10 + self.start_delay = True + self.repeats = 1 + self.persistent = False + + script = create.create_script(TestScriptD, key='test_script') + assert script is not None + assert script.interval == 10 + assert script.repeats == 1 + assert script.key == 'test_script' + script.stop() From 0a7bb5b92612f12a462360c22579fc3f7e7b710b Mon Sep 17 00:00:00 2001 From: Henddher Pedroza Date: Sun, 21 Oct 2018 20:13:31 -0500 Subject: [PATCH 7/7] Test create_script() repeats=1 and persisted=True --- evennia/utils/test_resources.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/evennia/utils/test_resources.py b/evennia/utils/test_resources.py index c044d776fb..3981ea1476 100644 --- a/evennia/utils/test_resources.py +++ b/evennia/utils/test_resources.py @@ -102,6 +102,22 @@ class TestCreateScript(EvenniaTest): assert script.key == 'test_script' script.stop() + def test_create_script_w_repeats_equal_1_persisted(self): + class TestScriptB1(DefaultScript): + def at_script_creation(self): + self.key = 'test_script' + self.interval = 10 + self.repeats = 1 + self.persistent = True + + script = create.create_script(TestScriptB1, key='test_script') + assert script is not None + assert script.interval == 10 + assert script.repeats == 1 + assert script.key == 'test_script' + assert self.persistent == True + script.stop() + def test_create_script_w_repeats_equal_2(self): class TestScriptC(DefaultScript): def at_script_creation(self):