From 143a0daf631dfc19c47b0bd9ea5de4dca315aafd 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 1625a8f7d1418dfb39554d1f30418f27d67573bd 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 b510bc12f470e6b733aaae2242714029199c17e5 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 9871aa615623eedb07f2e92f81e1ade16d442459 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 7e7ffbe3abecd5a8275ece30f5df792bb7a753ff 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 68e93bbe9a3fa63aeff88679bf0323954d392b50 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 99c798e834795dd9d71e438193f52bf761515ce5 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):