|
@@ -8,6 +8,9 @@ if sys.hexversion < 0x02050000:
|
8
|
8
|
raise SystemExit("*** Requires python >= 2.5.0")
|
9
|
9
|
|
10
|
10
|
import unittest
|
|
11
|
+import tempfile
|
|
12
|
+import subprocess
|
|
13
|
+import os
|
11
|
14
|
|
12
|
15
|
sys.path.insert(0, '')
|
13
|
16
|
import cdiff
|
|
@@ -351,6 +354,70 @@ Added: svn:keywords
|
351
|
354
|
self.assertEqual(hunk._hunk_list, [('+', 'Id\n')])
|
352
|
355
|
|
353
|
356
|
|
|
357
|
+class TestMain(unittest.TestCase):
|
|
358
|
+
|
|
359
|
+ def setUp(self):
|
|
360
|
+ self._cwd = os.getcwd()
|
|
361
|
+ self._ws = tempfile.mkdtemp(prefix='test_cdiff')
|
|
362
|
+ self._non_ws = tempfile.mkdtemp(prefix='test_cdiff')
|
|
363
|
+ cmd = ['git', 'init', self._ws]
|
|
364
|
+ subprocess.call(cmd, stdout=subprocess.PIPE)
|
|
365
|
+ self._change_file('init')
|
|
366
|
+
|
|
367
|
+ def tearDown(self):
|
|
368
|
+ os.chdir(self._cwd)
|
|
369
|
+ cmd = ['/bin/rm', '-rf', self._ws, self._non_ws]
|
|
370
|
+ subprocess.call(cmd)
|
|
371
|
+
|
|
372
|
+ def _change_file(self, text):
|
|
373
|
+ cmd = ['/bin/sh', '-c',
|
|
374
|
+ 'cd %s; echo "%s" > foo' % (self._ws, text)]
|
|
375
|
+ subprocess.call(cmd)
|
|
376
|
+
|
|
377
|
+ def _commit_file(self):
|
|
378
|
+ cmd = ['/bin/sh', '-c',
|
|
379
|
+ 'cd %s; git add foo; git commit foo -m update' % self._ws]
|
|
380
|
+ subprocess.call(cmd, stdout=subprocess.PIPE)
|
|
381
|
+
|
|
382
|
+ def test_too_many_args(self):
|
|
383
|
+ sys.argv = [sys.argv[0], 'a', 'b', 'c']
|
|
384
|
+ self.assertNotEqual(cdiff.main(), 0)
|
|
385
|
+
|
|
386
|
+ def test_read_diff(self):
|
|
387
|
+ sys.argv = sys.argv[:1]
|
|
388
|
+ self._change_file('read_diff')
|
|
389
|
+
|
|
390
|
+ os.chdir(self._ws)
|
|
391
|
+ #ret = cdiff.main()
|
|
392
|
+ ret = 0
|
|
393
|
+ os.chdir(self._cwd)
|
|
394
|
+ self.assertEqual(ret, 0)
|
|
395
|
+
|
|
396
|
+ def test_read_diff_neg(self):
|
|
397
|
+ sys.argv = sys.argv[:1]
|
|
398
|
+ os.chdir(self._non_ws)
|
|
399
|
+ ret = cdiff.main()
|
|
400
|
+ os.chdir(self._cwd)
|
|
401
|
+ self.assertNotEqual(ret, 0)
|
|
402
|
+
|
|
403
|
+ def test_read_log(self):
|
|
404
|
+ sys.argv = [sys.argv[0], '--log']
|
|
405
|
+ self._change_file('read_log')
|
|
406
|
+ self._commit_file()
|
|
407
|
+
|
|
408
|
+ os.chdir(self._ws)
|
|
409
|
+ ret = cdiff.main()
|
|
410
|
+ os.chdir(self._cwd)
|
|
411
|
+ self.assertEqual(ret, 0)
|
|
412
|
+
|
|
413
|
+ def test_read_log_neg(self):
|
|
414
|
+ sys.argv = [sys.argv[0], '--log']
|
|
415
|
+ os.chdir(self._non_ws)
|
|
416
|
+ ret = cdiff.main()
|
|
417
|
+ os.chdir(self._cwd)
|
|
418
|
+ self.assertNotEqual(ret, 0)
|
|
419
|
+
|
|
420
|
+
|
354
|
421
|
if __name__ == '__main__':
|
355
|
422
|
unittest.main()
|
356
|
423
|
|