Example #1
0
    def local_package_build_test(self):
        """Use 'conan package' to process locally the package method"""
        client = TestClient()
        conanfile_template = """
from conans import ConanFile

class MyConan(ConanFile):
    def package(self):
        self.copy(pattern="*.h", dst="include", src="include")
"""
        files = {"include/file.h": "foo",
                 CONANFILE: conanfile_template}

        client.save(files)
        origin_folder = client.current_folder
        build_folder = os.path.join(client.current_folder, "build")
        mkdir(build_folder)
        client.current_folder = build_folder
        client.run("install .. -g env -g txt")
        client.run("source ..")
        client.run("build ..")
        client.current_folder = temp_folder()
        client.run('package "%s/build"' % origin_folder)
        content = load(os.path.join(client.current_folder, "include/file.h"))
        self.assertEqual(content, "foo")
Example #2
0
    def local_flow_test(self):
        """Use 'conan package' to process locally the package method"""
        client = TestClient()
        conanfile_template = """
from conans import ConanFile

class MyConan(ConanFile):
    def package(self):
        self.copy(pattern="*.h", dst="include", src="include")
"""
        files = {"include/file.h": "foo",
                 CONANFILE: conanfile_template}

        client.save(files)
        origin_folder = client.current_folder
        client.run("install -g env -g txt")
        client.run("source")
        client.run("build")
        client.run("package .", ignore_error=True)
        self.assertIn("ERROR: Cannot 'conan package' to the build folder", client.user_io.out)
        package_folder = os.path.join(origin_folder, "package")
        mkdir(package_folder)
        client.current_folder = package_folder
        client.run('package ..')
        content = load(os.path.join(client.current_folder, "include/file.h"))
        self.assertEqual(content, "foo")
Example #3
0
    def reuse_test(self):
        conan_reference = ConanFileReference.loads("Hello0/0.1@lasote/stable")
        files = cpp_hello_conan_files("Hello0", "0.1")

        client = TestClient()
        client.save(files)
        client.run("export lasote/stable")

        configs = []  # ("gcc", "4.8")]
        # Place to add different compilers
        if platform.system() == "Windows2":
            configs.append(("Visual Studio", "12"))
        for compiler, compiler_version in configs:
            client.default_settings(compiler, compiler_version)
            client.run("install %s --build missing" % str(conan_reference))

        # Check compilation ok
        package_ids = client.paths.conan_packages(conan_reference)
        self.assertEquals(len(package_ids), len(configs))
        for package_id in package_ids:
            package_ref = PackageReference(conan_reference, package_id)
            self._assert_library_exists(package_ref, client.paths)

        # Reuse them
        conan_reference = ConanFileReference.loads("Hello1/0.2@lasote/stable")
        files3 = cpp_hello_conan_files("Hello1", "0.1",
                                       ["Hello0/0.1@lasote/stable"])
        client.current_folder = temp_folder()

        client.save(files3)
        for compiler, compiler_version in configs:
            client.default_settings(compiler, compiler_version)
            client.run('install')
            client.run('build')

            command = os.sep.join([".", "bin", "say_hello"])
            client.runner(command, client.current_folder)
            self.assertIn("Hello Hello1", client.user_io.out)
            self.assertIn("Hello Hello0", client.user_io.out)

        new_conanfile = files3[CONANFILE].replace('"language": 0',
                                                  '"language": 1')
        for compiler, compiler_version in configs:
            client.default_settings(compiler, compiler_version)
            client.save({CONANFILE: new_conanfile})
            client.run('install')
            client.run('build')
            time.sleep(1)

            client.runner(command, client.current_folder)
            self.assertIn("Hola Hello1", client.user_io.out)
            self.assertIn("Hola Hello0", client.user_io.out)
Example #4
0
    def reuse_test(self):
        conan_reference = ConanFileReference.loads("Hello0/0.1@lasote/stable")
        files = cpp_hello_conan_files("Hello0", "0.1")

        client = TestClient()
        client.save(files)
        client.run("export lasote/stable")

        configs = []  # ("gcc", "4.8")]
        # Place to add different compilers
        if platform.system() == "Windows2":
            configs.append(("Visual Studio", "12"))
        for compiler, compiler_version in configs:
            client.default_settings(compiler, compiler_version)
            client.run("install %s --build missing" % str(conan_reference))

        # Check compilation ok
        package_ids = client.paths.conan_packages(conan_reference)
        self.assertEquals(len(package_ids), len(configs))
        for package_id in package_ids:
            package_ref = PackageReference(conan_reference, package_id)
            self._assert_library_exists(package_ref, client.paths)

        # Reuse them
        conan_reference = ConanFileReference.loads("Hello1/0.2@lasote/stable")
        files3 = cpp_hello_conan_files("Hello1", "0.1", ["Hello0/0.1@lasote/stable"])
        client.current_folder = temp_folder()

        client.save(files3)
        for compiler, compiler_version in configs:
            client.default_settings(compiler, compiler_version)
            client.run('install')
            client.run('build')

            command = os.sep.join([".", "bin", "say_hello"])
            client.runner(command, cwd=client.current_folder)
            self.assertIn("Hello Hello1", client.user_io.out)
            self.assertIn("Hello Hello0", client.user_io.out)

        new_conanfile = files3[CONANFILE].replace('"language": 0', '"language": 1')
        for compiler, compiler_version in configs:
            client.default_settings(compiler, compiler_version)
            client.save({CONANFILE: new_conanfile})
            client.run('install')
            client.run('build')
            time.sleep(1)

            client.runner(command, cwd=client.current_folder)
            self.assertIn("Hola Hello1", client.user_io.out)
            self.assertIn("Hola Hello0", client.user_io.out)