diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-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.py | 67 |
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)) |