summaryrefslogtreecommitdiffstats
path: root/testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py')
-rw-r--r--testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py b/testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py
new file mode 100644
index 000000000..8e4ae0d32
--- /dev/null
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from marionette_harness.marionette_test import (
+ parameterized,
+ with_parameters,
+ MetaParameterized,
+ MarionetteTestCase
+)
+
+class Parameterizable(object):
+ __metaclass__ = MetaParameterized
+
+class TestDataDriven(MarionetteTestCase):
+ def test_parameterized(self):
+ class Test(Parameterizable):
+ def __init__(self):
+ self.parameters = []
+
+ @parameterized('1', 'thing', named=43)
+ @parameterized('2', 'thing2')
+ def test(self, thing, named=None):
+ self.parameters.append((thing, named))
+
+ self.assertFalse(hasattr(Test, 'test'))
+ self.assertTrue(hasattr(Test, 'test_1'))
+ self.assertTrue(hasattr(Test, 'test_2'))
+
+ test = Test()
+ test.test_1()
+ test.test_2()
+
+ self.assertEquals(test.parameters, [('thing', 43), ('thing2', None)])
+
+ def test_with_parameters(self):
+ DATA = [('1', ('thing',), {'named': 43}),
+ ('2', ('thing2',), {'named': None})]
+
+ class Test(Parameterizable):
+ def __init__(self):
+ self.parameters = []
+
+ @with_parameters(DATA)
+ def test(self, thing, named=None):
+ self.parameters.append((thing, named))
+
+ self.assertFalse(hasattr(Test, 'test'))
+ self.assertTrue(hasattr(Test, 'test_1'))
+ self.assertTrue(hasattr(Test, 'test_2'))
+
+ test = Test()
+ test.test_1()
+ test.test_2()
+
+ self.assertEquals(test.parameters, [('thing', 43), ('thing2', None)])
+
+ def test_parameterized_same_name_raises_error(self):
+ with self.assertRaises(KeyError):
+ class Test(Parameterizable):
+ @parameterized('1', 'thing', named=43)
+ @parameterized('1', 'thing2')
+ def test(self, thing, named=None):
+ pass
+
+ def test_marionette_test_case_is_parameterizable(self):
+ self.assertTrue(issubclass(MarionetteTestCase.__metaclass__, MetaParameterized))