コード例 #1
0
ファイル: test_sandbox.py プロジェクト: weinrank/gecko-dev
    def test_function_args(self):
        class Foo(int):
            pass

        def foo(a, b):
            return type(a), type(b)

        FUNCTIONS.update({"foo": (lambda self: foo, (Foo, int), "")})

        try:
            sandbox = self.sandbox()
            source = 'foo("a", "b")'

            with self.assertRaises(SandboxExecutionError) as se:
                sandbox.exec_source(source, "foo.mozbuild")

            e = se.exception
            self.assertIsInstance(e.exc_value, ValueError)

            sandbox = self.sandbox()
            source = 'foo(1, "b")'

            with self.assertRaises(SandboxExecutionError) as se:
                sandbox.exec_source(source, "foo.mozbuild")

            e = se.exception
            self.assertIsInstance(e.exc_value, ValueError)

            sandbox = self.sandbox()
            source = "a = foo(1, 2)"
            sandbox.exec_source(source, "foo.mozbuild")

            self.assertEquals(sandbox["a"], (Foo, int))
        finally:
            del FUNCTIONS["foo"]
コード例 #2
0
ファイル: test_sandbox.py プロジェクト: Floflis/gecko-b2g
    def test_function_args(self):
        class Foo(int):
            pass

        def foo(a, b):
            return type(a), type(b)

        FUNCTIONS.update(
            {
                "foo": (lambda self: foo, (Foo, int), ""),
            }
        )

        try:
            sandbox = self.sandbox()
            source = 'foo("a", "b")'

            with self.assertRaises(SandboxExecutionError) as se:
                sandbox.exec_source(source, "foo.mozbuild")

            e = se.exception
            self.assertIsInstance(e.exc_value, ValueError)

            sandbox = self.sandbox()
            source = 'foo(1, "b")'

            with self.assertRaises(SandboxExecutionError) as se:
                sandbox.exec_source(source, "foo.mozbuild")

            e = se.exception
            self.assertIsInstance(e.exc_value, ValueError)

            sandbox = self.sandbox()
            source = "a = foo(1, 2)"
            sandbox.exec_source(source, "foo.mozbuild")

            self.assertEquals(sandbox["a"], (Foo, int))
        finally:
            del FUNCTIONS["foo"]