Bläddra i källkod

Test covers main(), coverage 86%

Matthew Wang 11 år sedan
förälder
incheckning
f780bd427f
1 ändrade filer med 67 tillägg och 0 borttagningar
  1. 67
    0
      tests/test_cdiff.py

+ 67
- 0
tests/test_cdiff.py Visa fil

@@ -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