示例#1
0
 def _copy_mozconfig(self):
     """copies the mozconfig file into abs_mozilla_dir/.mozconfig
        and logs the content
     """
     config = self.config
     dirs = self.query_abs_dirs()
     src = get_mozconfig_path(self, config, dirs)
     dst = os.path.join(dirs['abs_mozilla_dir'], '.mozconfig')
     self.copyfile(src, dst)
     self.read_from_file(dst, verbose=True)
    def test_path(self):
        """
        Passing just ``src_mozconfig`` gives that file in ``abs_src_dir``.
        """
        script = FakeScriptMixin()

        abs_src_path = get_mozconfig_path(
            script, config={'src_mozconfig': "path/to/mozconfig"},
            dirs={"abs_src_dir": "/src"},
        )
        self.assertEqual(abs_src_path, "/src/path/to/mozconfig")
    def test_path(self):
        """
        Passing just ``src_mozconfig`` gives that file in ``abs_src_dir``.
        """
        script = FakeScriptMixin()

        abs_src_path = get_mozconfig_path(
            script,
            config={"src_mozconfig": "path/to/mozconfig"},
            dirs={"abs_src_dir": "/src"},
        )
        self.assertEqual(abs_src_path, "/src/path/to/mozconfig")
    def test_errors(self):
        script = FakeScriptMixin()

        configs = [
            # Not specifying any parts of a mozconfig path
            {},
            # Specifying both src_mozconfig and src_mozconfig_manifest
            {'src_mozconfig': 'path', 'src_mozconfig_manifest': 'path'},
            # Specifying src_mozconfig with some or all of a composite
            # mozconfig path
            {'src_mozconfig': 'path', 'app_name': 'app',
             'mozconfig_platform': 'platform', 'mozconfig_variant': 'variant'},
            {'src_mozconfig': 'path', 'mozconfig_platform': 'platform',
             'mozconfig_variant': 'variant'},
            {'src_mozconfig': 'path', 'app_name': 'app',
             'mozconfig_variant': 'variant'},
            {'src_mozconfig': 'path', 'app_name': 'app',
             'mozconfig_platform': 'platform'},
            # Specifying src_mozconfig_manifest with some or all of a composite
            # mozconfig path
            {'src_mozconfig_manifest': 'path', 'app_name': 'app',
             'mozconfig_platform': 'platform', 'mozconfig_variant': 'variant'},
            {'src_mozconfig_manifest': 'path',
             'mozconfig_platform': 'platform', 'mozconfig_variant': 'variant'},
            {'src_mozconfig_manifest': 'path', 'app_name': 'app',
             'mozconfig_variant': 'variant'},
            {'src_mozconfig_manifest': 'path', 'app_name': 'app',
             'mozconfig_platform': 'platform'},
            # Specifying only some parts of a compsite mozconfig path
            {'mozconfig_platform': 'platform', 'mozconfig_variant': 'variant'},
            {'app_name': 'app', 'mozconfig_variant': 'variant'},
            {'app_name': 'app', 'mozconfig_platform': 'platform'},
            {'app_name': 'app'},
            {'mozconfig_variant': 'variant'},
            {'mozconfig_platform': 'platform'},
        ]

        for config in configs:
            with self.assertRaises(MozconfigPathError):
                get_mozconfig_path(script, config=config, dirs={})
    def test_manifest(self):
        """
        Passing just ``src_mozconfig_manifest`` looks in that file in
        ``abs_work_dir``, and finds the mozconfig file specified there in
        ``abs_src_dir``.
        """
        script = FakeScriptMixin()

        test_dir = os.path.dirname(__file__)
        config = {"src_mozconfig_manifest": "helper_files/mozconfig_manifest.json"}
        abs_src_path = get_mozconfig_path(
            script,
            config=config,
            dirs={
                "abs_src_dir": "/src",
                "abs_work_dir": test_dir,
            },
        )
        self.assertEqual(abs_src_path, "/src/path/to/mozconfig")
    def test_manifest(self):
        """
        Passing just ``src_mozconfig_manifest`` looks in that file in
        ``abs_work_dir``, and finds the mozconfig file specified there in
        ``abs_src_dir``.
        """
        script = FakeScriptMixin()

        test_dir = os.path.dirname(__file__)
        config = {
            'src_mozconfig_manifest': "helper_files/mozconfig_manifest.json"
        }
        abs_src_path = get_mozconfig_path(
            script, config=config,
            dirs={
                "abs_src_dir": "/src",
                "abs_work_dir": test_dir,
            },
        )
        self.assertEqual(abs_src_path, "/src/path/to/mozconfig")
    def test_composite(self):
        """
        Passing ``app_name``, ``mozconfig_platform``, and ``mozconfig_variant``
        find the file in the ``config/mozconfigs`` subdirectory of that app
        directory.
        """
        script = FakeScriptMixin()

        config = {
            'app_name': 'the-app',
            'mozconfig_variant': 'variant',
            'mozconfig_platform': 'platform9000',
        }
        abs_src_path = get_mozconfig_path(
            script, config=config,
            dirs={"abs_src_dir": "/src"},
        )
        self.assertEqual(
            abs_src_path,
            "/src/the-app/config/mozconfigs/platform9000/variant",
        )
    def test_composite(self):
        """
        Passing ``app_name``, ``mozconfig_platform``, and ``mozconfig_variant``
        find the file in the ``config/mozconfigs`` subdirectory of that app
        directory.
        """
        script = FakeScriptMixin()

        config = {
            "app_name": "the-app",
            "mozconfig_variant": "variant",
            "mozconfig_platform": "platform9000",
        }
        abs_src_path = get_mozconfig_path(
            script,
            config=config,
            dirs={"abs_src_dir": "/src"},
        )
        self.assertEqual(
            abs_src_path,
            "/src/the-app/config/mozconfigs/platform9000/variant",
        )
    def test_errors(self):
        script = FakeScriptMixin()

        configs = [
            # Not specifying any parts of a mozconfig path
            {},
            # Specifying both src_mozconfig and src_mozconfig_manifest
            {
                "src_mozconfig": "path",
                "src_mozconfig_manifest": "path"
            },
            # Specifying src_mozconfig with some or all of a composite
            # mozconfig path
            {
                "src_mozconfig": "path",
                "app_name": "app",
                "mozconfig_platform": "platform",
                "mozconfig_variant": "variant",
            },
            {
                "src_mozconfig": "path",
                "mozconfig_platform": "platform",
                "mozconfig_variant": "variant",
            },
            {
                "src_mozconfig": "path",
                "app_name": "app",
                "mozconfig_variant": "variant",
            },
            {
                "src_mozconfig": "path",
                "app_name": "app",
                "mozconfig_platform": "platform",
            },
            # Specifying src_mozconfig_manifest with some or all of a composite
            # mozconfig path
            {
                "src_mozconfig_manifest": "path",
                "app_name": "app",
                "mozconfig_platform": "platform",
                "mozconfig_variant": "variant",
            },
            {
                "src_mozconfig_manifest": "path",
                "mozconfig_platform": "platform",
                "mozconfig_variant": "variant",
            },
            {
                "src_mozconfig_manifest": "path",
                "app_name": "app",
                "mozconfig_variant": "variant",
            },
            {
                "src_mozconfig_manifest": "path",
                "app_name": "app",
                "mozconfig_platform": "platform",
            },
            # Specifying only some parts of a compsite mozconfig path
            {
                "mozconfig_platform": "platform",
                "mozconfig_variant": "variant"
            },
            {
                "app_name": "app",
                "mozconfig_variant": "variant"
            },
            {
                "app_name": "app",
                "mozconfig_platform": "platform"
            },
            {
                "app_name": "app"
            },
            {
                "mozconfig_variant": "variant"
            },
            {
                "mozconfig_platform": "platform"
            },
        ]

        for config in configs:
            with self.assertRaises(MozconfigPathError):
                get_mozconfig_path(script, config=config, dirs={})
示例#10
0
    def test_errors(self):
        script = FakeScriptMixin()

        configs = [
            # Not specifying any parts of a mozconfig path
            {},
            # Specifying both src_mozconfig and src_mozconfig_manifest
            {
                'src_mozconfig': 'path',
                'src_mozconfig_manifest': 'path'
            },
            # Specifying src_mozconfig with some or all of a composite
            # mozconfig path
            {
                'src_mozconfig': 'path',
                'app_name': 'app',
                'mozconfig_platform': 'platform',
                'mozconfig_variant': 'variant'
            },
            {
                'src_mozconfig': 'path',
                'mozconfig_platform': 'platform',
                'mozconfig_variant': 'variant'
            },
            {
                'src_mozconfig': 'path',
                'app_name': 'app',
                'mozconfig_variant': 'variant'
            },
            {
                'src_mozconfig': 'path',
                'app_name': 'app',
                'mozconfig_platform': 'platform'
            },
            # Specifying src_mozconfig_manifest with some or all of a composite
            # mozconfig path
            {
                'src_mozconfig_manifest': 'path',
                'app_name': 'app',
                'mozconfig_platform': 'platform',
                'mozconfig_variant': 'variant'
            },
            {
                'src_mozconfig_manifest': 'path',
                'mozconfig_platform': 'platform',
                'mozconfig_variant': 'variant'
            },
            {
                'src_mozconfig_manifest': 'path',
                'app_name': 'app',
                'mozconfig_variant': 'variant'
            },
            {
                'src_mozconfig_manifest': 'path',
                'app_name': 'app',
                'mozconfig_platform': 'platform'
            },
            # Specifying only some parts of a compsite mozconfig path
            {
                'mozconfig_platform': 'platform',
                'mozconfig_variant': 'variant'
            },
            {
                'app_name': 'app',
                'mozconfig_variant': 'variant'
            },
            {
                'app_name': 'app',
                'mozconfig_platform': 'platform'
            },
            {
                'app_name': 'app'
            },
            {
                'mozconfig_variant': 'variant'
            },
            {
                'mozconfig_platform': 'platform'
            },
        ]

        for config in configs:
            with self.assertRaises(MozconfigPathError):
                get_mozconfig_path(script, config=config, dirs={})