diff options
Diffstat (limited to 'tests/test_addfiles.py')
-rw-r--r-- | tests/test_addfiles.py | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/test_addfiles.py b/tests/test_addfiles.py new file mode 100644 index 0000000..ff44ee3 --- /dev/null +++ b/tests/test_addfiles.py @@ -0,0 +1,85 @@ +import osc.core +import osc.oscerr +import os +import sys +from common import OscTestCase + +FIXTURES_DIR = os.path.join(os.getcwd(), 'tests/addfile_fixtures') + +def suite(): + import unittest + return unittest.makeSuite(TestAddFiles) + +class TestAddFiles(OscTestCase): + def _get_fixtures_dir(self): + return FIXTURES_DIR + + def testSimpleAdd(self): + """add one file ('toadd1') to the wc""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.addfile('toadd1') + exp = 'A toadd1\n' + self.assertEqual(sys.stdout.getvalue(), exp) + self.assertFalse(os.path.exists(os.path.join('.osc', 'toadd1'))) + self._check_status(p, 'toadd1', 'A') + self._check_addlist('toadd1\n') + + def testSimpleMultipleAdd(self): + """add multiple files ('toadd1', 'toadd2') to the wc""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.addfile('toadd1') + p.addfile('toadd2') + exp = 'A toadd1\nA toadd2\n' + self.assertEqual(sys.stdout.getvalue(), exp) + self.assertFalse(os.path.exists(os.path.join('.osc', 'toadd1'))) + self.assertFalse(os.path.exists(os.path.join('.osc', 'toadd2'))) + self._check_status(p, 'toadd1', 'A') + self._check_status(p, 'toadd2', 'A') + self._check_addlist('toadd1\ntoadd2\n') + + def testAddVersionedFile(self): + """add a versioned file""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + self.assertRaises(osc.oscerr.PackageFileConflict, p.addfile, 'merge') + self.assertFalse(os.path.exists(os.path.join('.osc', '_to_be_added'))) + self._check_status(p, 'merge', ' ') + + def testAddUnversionedFileTwice(self): + """add the same file twice""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.addfile('toadd1') + self.assertRaises(osc.oscerr.PackageFileConflict, p.addfile, 'toadd1') + exp = 'A toadd1\n' + self.assertEqual(sys.stdout.getvalue(), exp) + self.assertFalse(os.path.exists(os.path.join('.osc', 'toadd1'))) + self._check_status(p, 'toadd1', 'A') + self._check_addlist('toadd1\n') + + def testReplace(self): + """replace a deleted file ('foo')""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + open('foo', 'w').write('replaced file\n') + p.addfile('foo') + exp = 'A foo\n' + self.assertEqual(sys.stdout.getvalue(), exp) + self.assertTrue(os.path.exists(os.path.join('.osc', 'foo'))) + self.assertNotEqual(open(os.path.join('.osc', 'foo'), 'r').read(), 'replaced file\n') + self.assertFalse(os.path.exists(os.path.join('.osc', '_to_be_deleted'))) + self._check_status(p, 'foo', 'R') + self._check_addlist('foo\n') + + def testAddNonExistentFile(self): + """add a non existent file""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + self.assertRaises(osc.oscerr.OscIOError, p.addfile, 'doesnotexist') + self.assertFalse(os.path.exists(os.path.join('.osc', '_to_be_added'))) + +if __name__ == '__main__': + import unittest + unittest.main() |