tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_data_driven.py (2197B)


      1 # This Source Code Form is subject to the terms of the Mozilla Public
      2 # License, v. 2.0. If a copy of the MPL was not distributed with this
      3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      4 
      5 from marionette_harness.marionette_test import (
      6    parameterized,
      7    with_parameters,
      8    MetaParameterized,
      9    MarionetteTestCase,
     10 )
     11 
     12 
     13 class Parameterizable(object, metaclass=MetaParameterized):
     14    pass
     15 
     16 
     17 class TestDataDriven(MarionetteTestCase):
     18    def test_parameterized(self):
     19        class Test(Parameterizable):
     20            def __init__(self):
     21                self.parameters = []
     22 
     23            @parameterized("1", "thing", named=43)
     24            @parameterized("2", "thing2")
     25            def test(self, thing, named=None):
     26                self.parameters.append((thing, named))
     27 
     28        self.assertFalse(hasattr(Test, "test"))
     29        self.assertTrue(hasattr(Test, "test_1"))
     30        self.assertTrue(hasattr(Test, "test_2"))
     31 
     32        test = Test()
     33        test.test_1()
     34        test.test_2()
     35 
     36        self.assertEqual(test.parameters, [("thing", 43), ("thing2", None)])
     37 
     38    def test_with_parameters(self):
     39        DATA = [("1", ("thing",), {"named": 43}), ("2", ("thing2",), {"named": None})]
     40 
     41        class Test(Parameterizable):
     42            def __init__(self):
     43                self.parameters = []
     44 
     45            @with_parameters(DATA)
     46            def test(self, thing, named=None):
     47                self.parameters.append((thing, named))
     48 
     49        self.assertFalse(hasattr(Test, "test"))
     50        self.assertTrue(hasattr(Test, "test_1"))
     51        self.assertTrue(hasattr(Test, "test_2"))
     52 
     53        test = Test()
     54        test.test_1()
     55        test.test_2()
     56 
     57        self.assertEqual(test.parameters, [("thing", 43), ("thing2", None)])
     58 
     59    def test_parameterized_same_name_raises_error(self):
     60        with self.assertRaises(KeyError):
     61 
     62            class Test(Parameterizable):
     63                @parameterized("1", "thing", named=43)
     64                @parameterized("1", "thing2")
     65                def test(self, thing, named=None):
     66                    pass
     67 
     68    def test_marionette_test_case_is_parameterizable(self):
     69        self.assertTrue(isinstance(MarionetteTestCase, MetaParameterized))