- bump version to 0.130.1
[opensuse:osc.git] / tests / test_init_package.py
1 import osc.core
2 import osc.oscerr
3 import os
4 import sys
5 from common import GET, OscTestCase
6 FIXTURES_DIR = os.path.join(os.getcwd(), 'init_package_fixtures')
7
8 def suite():
9     import unittest
10     return unittest.makeSuite(TestInitPackage)
11
12 class TestInitPackage(OscTestCase):
13     def _get_fixtures_dir(self):
14         # workaround for git because it doesn't allow empty dirs
15         if not os.path.exists(os.path.join(FIXTURES_DIR, 'osctest')):
16             os.mkdir(os.path.join(FIXTURES_DIR, 'osctest'))
17         return FIXTURES_DIR
18
19     def tearDown(self):
20         if os.path.exists(os.path.join(FIXTURES_DIR, 'osctest')):
21             os.rmdir(os.path.join(FIXTURES_DIR, 'osctest'))
22         OscTestCase.tearDown(self)
23
24     def test_simple(self):
25         """initialize a package dir"""
26         pac_dir = os.path.join(self.tmpdir, 'testpkg')
27         osc.core.Package.init_package('http://localhost', 'osctest', 'testpkg', pac_dir)
28         storedir = os.path.join(pac_dir, osc.core.store)
29         self.assertFalse(os.path.exists(os.path.join(storedir, '_meta_mode')))
30         self.assertFalse(os.path.exists(os.path.join(storedir, '_size_limit')))
31         self._check_list(os.path.join(storedir, '_project'), 'osctest\n')
32         self._check_list(os.path.join(storedir, '_package'), 'testpkg\n')
33         self._check_list(os.path.join(storedir, '_files'), '<directory />\n')
34         self._check_list(os.path.join(storedir, '_apiurl'), 'http://localhost\n')
35
36     def test_size_limit(self):
37         """initialize a package dir with size_limit parameter"""
38         pac_dir = os.path.join(self.tmpdir, 'testpkg')
39         osc.core.Package.init_package('http://localhost', 'osctest', 'testpkg', pac_dir, size_limit=42)
40         storedir = os.path.join(pac_dir, osc.core.store)
41         self.assertFalse(os.path.exists(os.path.join(storedir, '_meta_mode')))
42         self._check_list(os.path.join(storedir, '_size_limit'), '42\n')
43         self._check_list(os.path.join(storedir, '_project'), 'osctest\n')
44         self._check_list(os.path.join(storedir, '_package'), 'testpkg\n')
45         self._check_list(os.path.join(storedir, '_files'), '<directory />\n')
46         self._check_list(os.path.join(storedir, '_apiurl'), 'http://localhost\n')
47
48     def test_meta_mode(self):
49         """initialize a package dir with meta paramter"""
50         pac_dir = os.path.join(self.tmpdir, 'testpkg')
51         osc.core.Package.init_package('http://localhost', 'osctest', 'testpkg', pac_dir, meta=True)
52         storedir = os.path.join(pac_dir, osc.core.store)
53         self.assertFalse(os.path.exists(os.path.join(storedir, '_size_limit')))
54         self._check_list(os.path.join(storedir, '_meta_mode'), '')
55         self._check_list(os.path.join(storedir, '_project'), 'osctest\n')
56         self._check_list(os.path.join(storedir, '_package'), 'testpkg\n')
57         self._check_list(os.path.join(storedir, '_files'), '<directory />\n')
58         self._check_list(os.path.join(storedir, '_apiurl'), 'http://localhost\n')
59
60     def test_dirExists(self):
61         """initialize a package dir (dir already exists)"""
62         pac_dir = os.path.join(self.tmpdir, 'testpkg')
63         os.mkdir(pac_dir)
64         osc.core.Package.init_package('http://localhost', 'osctest', 'testpkg', pac_dir)
65         storedir = os.path.join(pac_dir, osc.core.store)
66         self.assertFalse(os.path.exists(os.path.join(storedir, '_meta_mode')))
67         self.assertFalse(os.path.exists(os.path.join(storedir, '_size_limit')))
68         self._check_list(os.path.join(storedir, '_project'), 'osctest\n')
69         self._check_list(os.path.join(storedir, '_package'), 'testpkg\n')
70         self._check_list(os.path.join(storedir, '_files'), '<directory />\n')
71         self._check_list(os.path.join(storedir, '_apiurl'), 'http://localhost\n')
72
73     def test_storedirExists(self):
74         """initialize a package dir (dir+storedir already exists)"""
75         pac_dir = os.path.join(self.tmpdir, 'testpkg')
76         os.mkdir(pac_dir)
77         os.mkdir(os.path.join(pac_dir, osc.core.store))
78         self.assertRaises(osc.oscerr.OscIOError, osc.core.Package.init_package, 'http://localhost', 'osctest', 'testpkg', pac_dir)
79
80     def test_dirIsFile(self):
81         """initialize a package dir (dir is a file)"""
82         pac_dir = os.path.join(self.tmpdir, 'testpkg')
83         os.mkdir(pac_dir)
84         open(os.path.join(pac_dir, osc.core.store), 'w').write('foo\n')
85         self.assertRaises(osc.oscerr.OscIOError, osc.core.Package.init_package, 'http://localhost', 'osctest', 'testpkg', pac_dir)
86
87 if __name__ == '__main__':
88     import unittest
89     unittest.main()