Exemplo n.º 1
0
    def test_run_from_config_and_overwrite_params(self):
        output = '../temp/output/run-config-params-overwrite'
        utils.rmdir(output)

        linker = PackageLinker(
            config_file='../test_data/config-params-overwrite.yaml',
            params={'output': output})
        linker.run()

        self.assertTrue(
            os.path.isfile('%s/project-ios/assets/images/fake-image.txt' %
                           output))
        self.assertTrue(
            os.path.isfile('%s/project-ios/assets/plugins/lib-c/c-data.txt' %
                           output))

        linker = PackageLinker(
            config_file='../test_data/config-params-overwrite.yaml',
            params={
                'output': output,
                'platform': 'android'
            })
        linker.run()

        self.assertTrue(
            os.path.isfile('%s/project-android/assets/images/fake-image.txt' %
                           output))
        self.assertTrue(
            os.path.isfile(
                '%s/project-android/assets/plugins/lib-c/c-data.txt' % output))
Exemplo n.º 2
0
    def test_overwrite_linkspec(self):
        import os

        content = """
links:
- source: '{{__dir__}}/aaa'
  target: '{{__target__}}/aaa'
external_links:
- source: '{{resources_package}}'
  target: '{{__dir__}}/aaa/resources'
  default_content: ['{{__dir__}}/_resources/*']
"""
        package_linkspec = yaml.load(content)

        if os.path.exists('../test_data/empty_resources/default-data.txt'):
            os.remove('../test_data/empty_resources/default-data.txt')

        if os.path.exists('../test_data/empty_resources/a'):
            utils.rmdir('../test_data/empty_resources/a')

        output = '../temp/output/lib-a'
        utils.rmdir(output)

        linker = PackageLinker()
        linker.link(
            source='../test_data/lib-a.1.0.8/content',
            target=output,
            forced=True,
            params=dict(resources_package='../test_data/empty_resources'),
            **package_linkspec)

        self.assertTrue(os.path.isfile('%s/aaa/data.txt' % output))
        self.assertTrue(
            os.path.isfile('%s/aaa/resources/default-data.txt' % output))
        self.assertTrue(os.path.isfile('%s/aaa/resources/a/data.txt' % output))
Exemplo n.º 3
0
    def test_run_from_config_with_no_link_targets(self):
        output = '../temp/output/run-config-no-link-targets'
        utils.rmdir(output)

        linker = PackageLinker(
            config_file='../test_data/config-no-link-targets.yaml',
            params={'output': output})
        linker.run()

        self.assertTrue(os.path.isfile('%s/child/data.txt' % output))
Exemplo n.º 4
0
    def test_link_with_no_target_if_linkspec_has_links(self):
        output = '../temp/output/lib-a'
        utils.rmdir(output)

        linker = PackageLinker()
        linker.link(source='../test_data/lib-a.1.0.9/content',
                    forced=True,
                    params={'output': output})

        self.assertTrue(os.path.isfile('%s/child/data.txt' % output))
Exemplo n.º 5
0
    def test_link_with_empty_child_links_in_linkspec(self):
        output = '../temp/output/lib-a'
        utils.rmdir(output)

        linker = PackageLinker()
        linker.link(source='../test_data/lib-a.1.0.3/content',
                    target=output,
                    forced=True)

        self.assertTrue(os.path.isfile('%s/data.txt' % output))
Exemplo n.º 6
0
    def test_should_not_link_with_default_unity_project_link_template_without_required_project_param(self):
        output = '../temp/output/project-b'
        utils.rmdir(output)

        command = LinkPackageCommand()

        args_type = namedtuple('args', ['config', 'package_folder', 'params'])
        args = args_type(config='../test_data/project-b/upkit.yaml', package_folder=None, params={})

        with self.assertRaises(SystemExit):
            command.run(args)
Exemplo n.º 7
0
    def test_link_with_external_links_in_linkspec(self):
        output = '../temp/output/lib-a'
        utils.rmdir(output)

        linker = PackageLinker()
        linker.link(source='../test_data/lib-a.1.0.7/content',
                    target=output,
                    forced=True,
                    params=dict(resources_package='../test_data/resources'))

        self.assertTrue(os.path.isfile('%s/data.txt' % output))
        self.assertTrue(os.path.isfile('%s/resources/data.txt' % output))
Exemplo n.º 8
0
    def test_link_with_content_selection_in_linkspec(self):
        output = '../temp/output/lib-a'
        utils.rmdir(output)

        linker = PackageLinker()
        linker.link(source='../test_data/lib-a.1.0.5/content',
                    target=output,
                    forced=True)

        self.assertTrue(os.path.isfile('%s/data0.txt' % output))
        self.assertTrue(os.path.isfile('%s/data1.txt' % output))
        self.assertTrue(os.path.isfile('%s/data2.txt' % output))
        self.assertFalse(os.path.isfile('%s/data.txt' % output))
Exemplo n.º 9
0
    def test_should_link_with_default_unity_project_link_template(self):
        output = '../temp/output/project-a'
        utils.rmdir(output)

        command = LinkPackageCommand()

        args_type = namedtuple('args', ['config', 'package_folder', 'params'])
        args = args_type(config='../test_data/project-a/upkit.yaml', package_folder=None, params={})
        command.run(args)

        self.assertTrue(os.path.isdir(output))
        self.assertTrue(os.path.isdir(os.path.join(output, 'Assets/Scripts')))
        self.assertTrue(os.path.isfile(os.path.join(output, 'Assets/Scripts.meta')))
        self.assertFalse(os.path.exists(os.path.join(output, 'Assets/.gitignore')))
Exemplo n.º 10
0
    def test_should_create_package_when_location_not_exist(self):
        output = '../temp/output/test-package'
        utils.rmdir(output)

        command = CreatePackageCommand()

        args_type = namedtuple('args', 'location')
        args = args_type(location=output)
        command.run(args)

        self.assertTrue(os.path.isdir(output))
        self.assertTrue(os.path.isfile(os.path.join(output, 'upkit.yaml')))
        self.assertTrue(os.path.isfile(os.path.join(output, 'linkspec.yaml')))
        self.assertTrue(os.path.isfile(os.path.join(output, 'package.nuspec')))
Exemplo n.º 11
0
    def test_support_git_source_with_branch_and_path(self):
        output = '../temp/output/lib-a'
        package_folder = '../temp/output/packages'

        utils.rmdir(output)
        utils.rmdir(package_folder)

        linker = PackageLinker(package_folder=package_folder)
        linker.link(
            source=
            'git:https://bitbucket.org/tuongvu/upkit-test-package.git@feature/ccc#ccc',
            target=output,
            forced=True)

        self.assertTrue(os.path.isfile(os.path.join(output, '333.txt')))
Exemplo n.º 12
0
    def resolve(self, source):
        if not self.package_linker.package_folder:
            raise ValueError(
                '"package_folder" is required but not specified, see -w parameter.'
            )

        repo_uri = source[len(self.scheme):]

        repo_uri, branch_or_tag, sub_path = _normalize_uri(repo_uri)

        # branch = branch_or_tag
        # tag = None
        # if branch_or_tag and ':' in branch_or_tag:
        #     idx = branch_or_tag.index(':')
        #     tag = branch_or_tag[idx + 1:]
        #     branch = branch_or_tag[:idx]

        repo_id = repo_uri
        if branch_or_tag:
            repo_id = '%s.%s' % (repo_uri, branch_or_tag)

        repo_id = repo_id.replace('.', '_').replace(':', '_').replace('/', '_')
        repo_path = os.path.join(self.package_linker.package_folder, repo_id)
        utils.mkdir_p(self.package_linker.package_folder)

        # Check if the repo already exists
        repo = None
        if os.path.isdir(repo_path):
            try:
                repo = Repo(repo_path)
                if not hasattr(
                        repo.remotes,
                        'origin') or not repo_uri == repo.remotes.origin.url:
                    raise RuntimeError('Invalid existing repository %s' %
                                       repo_path)
                else:
                    repo.remotes.origin.pull()
            except:
                utils.rmdir(repo_path)
                repo = None

        # the repository does not exist.
        if not repo:
            repo = Repo.clone_from(repo_uri, repo_path)

        self._swith_branch_or_tag(repo, branch_or_tag)

        return os.path.join(repo_path, sub_path)
Exemplo n.º 13
0
    def test_should_not_create_package_when_location_is_not_empty(self):
        output = '../temp/output/test-package'
        utils.rmdir(output)
        utils.mkdir_p(output)
        utils.touch(os.path.join(os.path.abspath(output), 'data.txt'))

        with self.assertRaises(SystemExit):
            command = CreatePackageCommand()
            args_type = namedtuple('args', 'location')
            args = args_type(location=output)
            command.run(args)

        self.assertFalse(os.path.isfile(os.path.join(output, 'upkit.yaml')))
        self.assertFalse(os.path.isfile(os.path.join(output, 'linkspec.yaml')))
        self.assertFalse(os.path.isfile(os.path.join(output,
                                                     'package.nuspec')))
Exemplo n.º 14
0
    def test_run_from_config_and_overwrite_linkspec(self):
        output = '../temp/output/run-config-overwrite'
        utils.rmdir(output)

        linker = PackageLinker(
            config_file='../test_data/config-overwrite.yaml',
            params={'output': output})
        linker.run()

        self.assertTrue(os.path.isfile('%s/lib-a/aaa/data.txt' % output))
        self.assertTrue(
            os.path.isfile('%s/lib-a/aaa/resources/default-data.txt' % output))
        self.assertTrue(
            os.path.isfile('%s/lib-a/aaa/resources/a/data.txt' % output))

        self.assertTrue(os.path.isfile('%s/lib-c/c-data.txt' % output))
Exemplo n.º 15
0
    def test_support_nuget_source_with_deep_path(self):
        output = '../temp/output/lib-a'
        package_folder = '../temp/output/packages'

        utils.rmdir(output)
        utils.rmdir(package_folder)

        linker = PackageLinker(package_folder=package_folder)
        linker.link(source='nuget:[email protected]#lib/net40-Client',
                    target=output,
                    forced=True)
        # linker.link(source='git:http://[email protected]', target=output, forced=True)

        self.assertTrue(
            os.path.isdir(os.path.join(package_folder, 'Nuget.Core.2.14.0')))
        self.assertTrue(os.path.isfile(os.path.join(output, 'NuGet.Core.Dll')))
Exemplo n.º 16
0
    def test_support_git_source_using_ssh(self):
        output = '../temp/output/lib-a'
        package_folder = '../temp/output/packages'

        utils.rmdir(output)
        utils.rmdir(package_folder)

        linker = PackageLinker(package_folder=package_folder)
        linker.link(
            source='git:[email protected]:tuongvu/upkit-test-package.git',
            target=output,
            forced=True)
        # linker.link(source='git:http://[email protected]', target=output, forced=True)

        # self.assertTrue(os.path.isfile(os.path.join(package_folder, 'README.md')))
        self.assertTrue(os.path.isfile(os.path.join(output, 'README.md')))
Exemplo n.º 17
0
    def test_support_git_source_with_branch_via_ssh(self):
        output = '../temp/output/lib-a'
        package_folder = '../temp/output/packages'

        utils.rmdir(output)
        utils.rmdir(package_folder)

        linker = PackageLinker(package_folder=package_folder)
        linker.link(
            source=
            'git:[email protected]:tuongvu/upkit-test-package.git@feature/ccc',
            target=output,
            forced=True)

        self.assertTrue(os.path.isdir(os.path.join(output, 'ccc')))
        self.assertTrue(os.path.isfile(os.path.join(output, 'README.md')))
Exemplo n.º 18
0
    def test_support_git_source_with_tag(self):
        output = '../temp/output/lib-a'
        package_folder = '../temp/output/packages'

        utils.rmdir(output)
        utils.rmdir(package_folder)

        linker = PackageLinker(package_folder=package_folder)
        linker.link(
            source=
            'git:https://bitbucket.org/tuongvu/upkit-test-package.git@tag-1',
            target=output,
            forced=True)
        # linker.link(source='git:http://[email protected]', target=output, forced=True)

        self.assertTrue(os.path.isdir(os.path.join(output, 'ccc')))
        self.assertFalse(os.path.isdir(os.path.join(output, 'eee')))
        self.assertTrue(os.path.isfile(os.path.join(output, 'README.md')))
Exemplo n.º 19
0
    def test_link_with_external_links_default_content_in_linkspec(self):
        if os.path.exists('../test_data/empty_resources/default-data.txt'):
            os.remove('../test_data/empty_resources/default-data.txt')

        if os.path.exists('../test_data/empty_resources/a'):
            utils.rmdir('../test_data/empty_resources/a')

        output = '../temp/output/lib-a'
        utils.rmdir(output)

        linker = PackageLinker()
        linker.link(
            source='../test_data/lib-a.1.0.8/content',
            target=output,
            forced=True,
            params=dict(resources_package='../test_data/empty_resources'))

        self.assertTrue(os.path.isfile('%s/child/data.txt' % output))
        self.assertTrue(
            os.path.isfile('%s/child/resources/default-data.txt' % output))
        self.assertTrue(
            os.path.isfile('%s/child/resources/a/data.txt' % output))
Exemplo n.º 20
0
    def test_support_git_source_if_already_cloned(self):
        output = '../temp/output/lib-a'
        package_folder = '../temp/output/packages'

        utils.rmdir(output)
        utils.rmdir(package_folder)

        linker = PackageLinker(package_folder=package_folder)
        linker.link(
            source='git:https://bitbucket.org/tuongvu/upkit-test-package.git',
            target=output,
            forced=True)

        # link again, with existing package folder
        utils.rmdir(output)
        linker.link(
            source='git:https://bitbucket.org/tuongvu/upkit-test-package.git',
            target=output,
            forced=True)

        self.assertTrue(os.path.isfile(os.path.join(output, 'README.md')))