예제 #1
0
    def _check_export_uploaded_folder(self, mode, export_folder=None, export_src_folder=None):
        if mode == "exports_sources":
            expected_src_exports = ["hello.h"]
            expected_exports = ['conanfile.py', 'conanmanifest.txt', EXPORT_SOURCES_TGZ_NAME]
        if mode == "exports":
            expected_src_exports = []
            expected_exports = ["hello.h", 'conanfile.py', 'conanmanifest.txt', EXPORT_TGZ_NAME]
        if mode == "both":
            expected_src_exports = ["hello.h"]
            expected_exports = ['conanfile.py', 'conanmanifest.txt', "data.txt",
                                EXPORT_TGZ_NAME, EXPORT_SOURCES_TGZ_NAME]
        if mode == "nested":
            expected_src_exports = ["src/hello.h"]
            expected_exports = ["src/data.txt", 'conanfile.py', 'conanmanifest.txt',
                                EXPORT_TGZ_NAME, EXPORT_SOURCES_TGZ_NAME]

        if mode == "overlap":
            expected_src_exports = ["src/hello.h", "src/data.txt"]
            expected_exports = ["src/data.txt", "src/hello.h", 'conanfile.py', 'conanmanifest.txt',
                                EXPORT_TGZ_NAME, EXPORT_SOURCES_TGZ_NAME]

        export_folder = export_folder or self.export_folder
        self.assertEqual(scan_folder(export_folder), sorted(expected_exports))
        self.assertEqual(scan_folder(export_src_folder or self.export_sources_folder),
                         sorted(expected_src_exports))
예제 #2
0
    def _check_export_folder(self,
                             mode,
                             export_folder=None,
                             export_src_folder=None):
        if mode == "exports_sources":
            expected_src_exports = ["hello.h"]
            expected_exports = ['conanfile.py', 'conanmanifest.txt']
        if mode == "exports":
            expected_src_exports = []
            expected_exports = ["hello.h", 'conanfile.py', 'conanmanifest.txt']
        if mode == "both":
            expected_src_exports = ["hello.h"]
            expected_exports = [
                'conanfile.py', 'conanmanifest.txt', "data.txt"
            ]
        if mode == "nested":
            expected_src_exports = ["src/hello.h"]
            expected_exports = [
                "src/data.txt", 'conanfile.py', 'conanmanifest.txt'
            ]
        if mode == "overlap":
            expected_src_exports = ["src/hello.h", "src/data.txt"]
            expected_exports = [
                "src/data.txt", "src/hello.h", 'conanfile.py',
                'conanmanifest.txt'
            ]

        self.assertEqual(scan_folder(export_folder or self.export_folder),
                         sorted(expected_exports))
        self.assertEqual(
            scan_folder(export_src_folder or self.export_sources_folder),
            sorted(expected_src_exports))
예제 #3
0
    def _check_export_installed_folder(self, mode, reuploaded=False, updated=False):
        """ Just installed, no EXPORT_SOURCES_DIR is present
        """
        if mode == "exports_sources":
            expected_exports = ['conanfile.py', 'conanmanifest.txt']
        if mode == "both":
            expected_exports = ['conanfile.py', 'conanmanifest.txt', "data.txt"]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if mode == "exports":
            expected_exports = ['conanfile.py', 'conanmanifest.txt', "hello.h"]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if mode == "nested":
            expected_exports = ['conanfile.py', 'conanmanifest.txt', "src/data.txt"]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if mode == "overlap":
            expected_exports = ['conanfile.py', 'conanmanifest.txt', "src/data.txt", "src/hello.h"]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if updated:
            expected_exports.append("license.txt")

        self.assertEqual(scan_folder(self.export_folder), sorted(expected_exports))
        self.assertFalse(os.path.exists(os.path.join(self.export_folder, EXPORT_SOURCES_DIR)))
예제 #4
0
    def _check_export_installed_folder(self, mode, reuploaded=False, updated=False):
        """ Just installed, no EXPORT_SOURCES_DIR is present
        """
        if mode == "exports_sources":
            expected_exports = ['conanfile.py', 'conanmanifest.txt']
        if mode == "both":
            expected_exports = ['conanfile.py', 'conanmanifest.txt', "data.txt"]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if mode == "exports":
            expected_exports = ['conanfile.py', 'conanmanifest.txt', "hello.h"]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if mode == "nested":
            expected_exports = ['conanfile.py', 'conanmanifest.txt', "src/data.txt"]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if mode == "overlap":
            expected_exports = ['conanfile.py', 'conanmanifest.txt', "src/data.txt", "src/hello.h"]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if updated:
            expected_exports.append("license.txt")

        self.assertEqual(scan_folder(self.export_folder), sorted(expected_exports))
        self.assertFalse(os.path.exists(self.export_sources_folder))
예제 #5
0
    def _check_export_uploaded_folder(self, mode, export_folder=None):
        if mode == "exports_sources":
            expected_exports = [
                "%s/%s" % (EXPORT_SOURCES_DIR, "hello.h"), 'conanfile.py',
                'conanmanifest.txt', EXPORT_SOURCES_TGZ_NAME
            ]
        if mode == "exports":
            expected_exports = [
                "hello.h", 'conanfile.py', 'conanmanifest.txt', EXPORT_TGZ_NAME
            ]
        if mode == "both":
            expected_exports = [
                "%s/%s" % (EXPORT_SOURCES_DIR, "hello.h"), 'conanfile.py',
                'conanmanifest.txt', "data.txt", EXPORT_TGZ_NAME,
                EXPORT_SOURCES_TGZ_NAME
            ]
        if mode == "nested":
            expected_exports = [
                "%s/%s" % (EXPORT_SOURCES_DIR, "src/hello.h"), "src/data.txt",
                'conanfile.py', 'conanmanifest.txt', EXPORT_TGZ_NAME,
                EXPORT_SOURCES_TGZ_NAME
            ]

        if mode == "overlap":
            expected_exports = [
                "%s/%s" % (EXPORT_SOURCES_DIR, "src/hello.h"),
                "%s/%s" % (EXPORT_SOURCES_DIR, "src/data.txt"), "src/data.txt",
                "src/hello.h", 'conanfile.py', 'conanmanifest.txt',
                EXPORT_TGZ_NAME, EXPORT_SOURCES_TGZ_NAME
            ]

        export_folder = export_folder or self.export_folder
        self.assertTrue(
            os.path.exists(os.path.join(export_folder, EXPORT_SOURCES_DIR)))
        self.assertEqual(scan_folder(export_folder), sorted(expected_exports))
예제 #6
0
 def _get_files(folder):
     relpaths = scan_folder(folder)
     files = {}
     for path in relpaths:
         with open(os.path.join(folder, path), "r") as file_handle:
             files[path] = file_handle.read()
     return files
예제 #7
0
 def _check_source_folder(self, mode):
     """ Source folder MUST be always the same
     """
     expected_sources = ["hello.h"]
     if mode == "both":
         expected_sources.append("data.txt")
     if mode == "nested" or mode == "overlap":
         expected_sources = ["src/hello.h", "src/data.txt"]
     expected_sources = sorted(expected_sources)
     self.assertEqual(scan_folder(self.source_folder), expected_sources)
예제 #8
0
 def _check_source_folder(self, mode):
     """ Source folder MUST be always the same
     """
     expected_sources = ['conanfile.py', 'conanmanifest.txt', "hello.h"]
     if mode == "both":
         expected_sources.append("data.txt")
     if mode == "nested" or mode == "overlap":
         expected_sources = ['conanfile.py', 'conanmanifest.txt', "src/hello.h", "src/data.txt"]
     expected_sources = sorted(expected_sources)
     self.assertEqual(scan_folder(self.source_folder), expected_sources)
예제 #9
0
    def _check_server_folder(self, mode, server=None):
        if mode == "exports_sources":
            expected_server = [EXPORT_SOURCES_TGZ_NAME, 'conanfile.py', 'conanmanifest.txt']
        if mode == "exports":
            expected_server = [EXPORT_TGZ_NAME, 'conanfile.py', 'conanmanifest.txt']
        if mode == "both" or mode == "nested" or mode == "overlap":
            expected_server = [EXPORT_TGZ_NAME, EXPORT_SOURCES_TGZ_NAME, 'conanfile.py',
                               'conanmanifest.txt']

        server = server or self.server
        self.assertEqual(scan_folder(server.paths.export(self.reference)), expected_server)
예제 #10
0
    def _check_server_folder(self, mode, server=None):
        if mode == "exports_sources":
            expected_server = [EXPORT_SOURCES_TGZ_NAME, 'conanfile.py', 'conanmanifest.txt']
        if mode == "exports":
            expected_server = [EXPORT_TGZ_NAME, 'conanfile.py', 'conanmanifest.txt']
        if mode == "both" or mode == "nested" or mode == "overlap":
            expected_server = [EXPORT_TGZ_NAME, EXPORT_SOURCES_TGZ_NAME, 'conanfile.py',
                               'conanmanifest.txt']

        server = server or self.server
        self.assertEqual(scan_folder(server.paths.export(self.reference)), expected_server)
예제 #11
0
    def _check_package_folder(self, mode):
        """ Package folder must be always the same (might have tgz after upload)
        """
        if mode in ["exports", "exports_sources"]:
            expected_package = ["conaninfo.txt", "conanmanifest.txt", "include/hello.h"]
        if mode == "both":
            expected_package = ["conaninfo.txt", "conanmanifest.txt", "include/hello.h",
                                "docs/data.txt"]
        if mode == "nested" or mode == "overlap":
            expected_package = ["conaninfo.txt", "conanmanifest.txt", "include/src/hello.h",
                                "docs/src/data.txt"]

        self.assertEqual(scan_folder(self.package_folder), sorted(expected_package))
예제 #12
0
    def _check_server_folder(self, mode, server=None):
        if mode == "exports_sources":
            expected_server = [EXPORT_SOURCES_TGZ_NAME, 'conanfile.py', 'conanmanifest.txt']
        if mode == "exports":
            expected_server = [EXPORT_TGZ_NAME, 'conanfile.py', 'conanmanifest.txt']
        if mode == "both" or mode == "nested" or mode == "overlap":
            expected_server = [EXPORT_TGZ_NAME, EXPORT_SOURCES_TGZ_NAME, 'conanfile.py',
                               'conanmanifest.txt']

        server = server or self.server
        rev, _ = server.server_store.get_last_revision(self.ref)
        ref = self.ref.copy_with_rev(rev)
        self.assertEqual(scan_folder(server.server_store.export(ref)), expected_server)
예제 #13
0
    def _check_package_folder(self, mode):
        """ Package folder must be always the same (might have tgz after upload)
        """
        if mode in ["exports", "exports_sources"]:
            expected_package = ["conaninfo.txt", "conanmanifest.txt", "include/hello.h"]
        if mode == "both":
            expected_package = ["conaninfo.txt", "conanmanifest.txt", "include/hello.h",
                                "docs/data.txt"]
        if mode == "nested" or mode == "overlap":
            expected_package = ["conaninfo.txt", "conanmanifest.txt", "include/src/hello.h",
                                "docs/src/data.txt"]

        self.assertEqual(scan_folder(self.package_folder), sorted(expected_package))
예제 #14
0
    def _check_export_installed_folder(self,
                                       mode,
                                       reuploaded=False,
                                       updated=False):
        """ Just installed, no EXPORT_SOURCES_DIR is present
        """
        if mode == "exports_sources":
            expected_exports = ['conanfile.py', 'conanmanifest.txt']
        if mode == "both":
            expected_exports = [
                'conanfile.py', 'conanmanifest.txt', "data.txt"
            ]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if mode == "exports":
            expected_exports = ['conanfile.py', 'conanmanifest.txt', "hello.h"]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if mode == "nested":
            expected_exports = [
                'conanfile.py', 'conanmanifest.txt', "src/data.txt"
            ]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if mode == "overlap":
            expected_exports = [
                'conanfile.py', 'conanmanifest.txt', "src/data.txt",
                "src/hello.h"
            ]
            if reuploaded:
                expected_exports.append("conan_export.tgz")
        if updated:
            expected_exports.append("license.txt")

        self.assertEqual(scan_folder(self.export_folder),
                         sorted(expected_exports))
        if reuploaded and mode == "exports":
            # In this mode, we know the sources are not required
            # So the local folder is created, but empty
            self.assertTrue(os.path.exists(self.export_sources_folder))
        else:
            self.assertFalse(os.path.exists(self.export_sources_folder))
예제 #15
0
    def _check_export_folder(self, mode, export_folder=None):
        if mode == "exports_sources":
            expected_exports = ["%s/%s" % (EXPORT_SOURCES_DIR, "hello.h"),
                                'conanfile.py', 'conanmanifest.txt']
        if mode == "exports":
            expected_exports = ["hello.h", 'conanfile.py', 'conanmanifest.txt']
        if mode == "both":
            expected_exports = ["%s/%s" % (EXPORT_SOURCES_DIR, "hello.h"),
                                'conanfile.py', 'conanmanifest.txt', "data.txt"]
        if mode == "nested":
            expected_exports = ["%s/%s" % (EXPORT_SOURCES_DIR, "src/hello.h"),
                                "src/data.txt", 'conanfile.py', 'conanmanifest.txt']
        if mode == "overlap":
            expected_exports = ["%s/%s" % (EXPORT_SOURCES_DIR, "src/hello.h"),
                                "%s/%s" % (EXPORT_SOURCES_DIR, "src/data.txt"),
                                "src/data.txt", "src/hello.h", 'conanfile.py', 'conanmanifest.txt']

        export_folder = export_folder or self.export_folder
        self.assertTrue(os.path.exists(os.path.join(export_folder, EXPORT_SOURCES_DIR)))
        self.assertEqual(scan_folder(export_folder), sorted(expected_exports))
예제 #16
0
 def _assert_package_exists_in_server(self, pref, paths, files):
     folder = uncompress_packaged_files(paths, pref)
     real_files = scan_folder(folder)
     for f in files:
         self.assertIn(f, real_files)
예제 #17
0
 def _assert_package_exists(self, pref, paths, files):
     package_path = paths.package(pref)
     self.assertTrue(os.path.exists(os.path.join(package_path)))
     real_files = scan_folder(package_path)
     for f in files:
         self.assertIn(f, real_files)
예제 #18
0
 def _assert_package_exists(self, package_ref, paths, files):
     package_path = paths.package(package_ref)
     self.assertTrue(os.path.exists(os.path.join(package_path)))
     real_files = scan_folder(package_path)
     for f in files:
         self.assertIn(f, real_files)
예제 #19
0
 def _assert_package_exists_in_server(self, package_ref, paths, files):
     folder = uncompress_packaged_files(paths, package_ref)
     real_files = scan_folder(folder)
     for f in files:
         self.assertIn(f, real_files)