diff options
-rw-r--r-- | bitbake/lib/bb/tests/fetch.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py index 6d16cf59a1..54148b3fdf 100644 --- a/bitbake/lib/bb/tests/fetch.py +++ b/bitbake/lib/bb/tests/fetch.py | |||
@@ -2199,6 +2199,12 @@ class GitShallowTest(FetcherTest): | |||
2199 | self.assertIn("fstests.doap", dir) | 2199 | self.assertIn("fstests.doap", dir) |
2200 | 2200 | ||
2201 | class GitLfsTest(FetcherTest): | 2201 | class GitLfsTest(FetcherTest): |
2202 | def skipIfNoGitLFS(): | ||
2203 | import shutil | ||
2204 | if not shutil.which('git-lfs'): | ||
2205 | return unittest.skip('git-lfs not installed') | ||
2206 | return lambda f: f | ||
2207 | |||
2202 | def setUp(self): | 2208 | def setUp(self): |
2203 | FetcherTest.setUp(self) | 2209 | FetcherTest.setUp(self) |
2204 | 2210 | ||
@@ -2232,6 +2238,44 @@ class GitLfsTest(FetcherTest): | |||
2232 | ud = fetcher.ud[uri] | 2238 | ud = fetcher.ud[uri] |
2233 | return fetcher, ud | 2239 | return fetcher, ud |
2234 | 2240 | ||
2241 | def get_real_git_lfs_file(self): | ||
2242 | self.d.setVar('PATH', os.environ.get('PATH')) | ||
2243 | fetcher, ud = self.fetch() | ||
2244 | fetcher.unpack(self.d.getVar('WORKDIR')) | ||
2245 | unpacked_lfs_file = os.path.join(self.d.getVar('WORKDIR'), 'git', "Cat_poster_1.jpg") | ||
2246 | return unpacked_lfs_file | ||
2247 | |||
2248 | @skipIfNoGitLFS() | ||
2249 | @skipIfNoNetwork() | ||
2250 | def test_real_git_lfs_repo_succeeds_without_lfs_param(self): | ||
2251 | self.d.setVar('SRC_URI', "git://gitlab.com/gitlab-examples/lfs.git;protocol=https;branch=master") | ||
2252 | f = self.get_real_git_lfs_file() | ||
2253 | self.assertTrue(os.path.exists(f)) | ||
2254 | self.assertEqual("c0baab607a97839c9a328b4310713307", bb.utils.md5_file(f)) | ||
2255 | |||
2256 | @skipIfNoGitLFS() | ||
2257 | @skipIfNoNetwork() | ||
2258 | def test_real_git_lfs_repo_succeeds(self): | ||
2259 | self.d.setVar('SRC_URI', "git://gitlab.com/gitlab-examples/lfs.git;protocol=https;branch=master;lfs=1") | ||
2260 | f = self.get_real_git_lfs_file() | ||
2261 | self.assertTrue(os.path.exists(f)) | ||
2262 | self.assertEqual("c0baab607a97839c9a328b4310713307", bb.utils.md5_file(f)) | ||
2263 | |||
2264 | @skipIfNoGitLFS() | ||
2265 | @skipIfNoNetwork() | ||
2266 | def test_real_git_lfs_repo_succeeds(self): | ||
2267 | self.d.setVar('SRC_URI', "git://gitlab.com/gitlab-examples/lfs.git;protocol=https;branch=master;lfs=0") | ||
2268 | f = self.get_real_git_lfs_file() | ||
2269 | # This is the actual non-smudged placeholder file on the repo if git-lfs does not run | ||
2270 | lfs_file = ( | ||
2271 | 'version https://git-lfs.github.com/spec/v1\n' | ||
2272 | 'oid sha256:34be66b1a39a1955b46a12588df9d5f6fc1da790e05cf01f3c7422f4bbbdc26b\n' | ||
2273 | 'size 11423554\n' | ||
2274 | ) | ||
2275 | |||
2276 | with open(f) as fh: | ||
2277 | self.assertEqual(lfs_file, fh.read()) | ||
2278 | |||
2235 | def test_lfs_enabled(self): | 2279 | def test_lfs_enabled(self): |
2236 | import shutil | 2280 | import shutil |
2237 | 2281 | ||