From f643037b791959c69f163bcd7e066f06412f6975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20David=20Iba=C3=B1ez?= Date: Tue, 8 Feb 2011 18:22:09 +0100 Subject: [PATCH] Add unit tests for the index file --- test/data/testrepo.zip | Bin 14827 -> 15448 bytes test/test_index.py | 45 ++++++++++++++++++++++++++++++++++++++++- test/utils.py | 32 ++++++++++++++--------------- 3 files changed, 60 insertions(+), 17 deletions(-) diff --git a/test/data/testrepo.zip b/test/data/testrepo.zip index aac9a6293b8b0a0b8a7cefa3ee7ff3f17d3c3881..92be5a7bcee3d2cb5ff1302145638cc53aa1eb2b 100644 GIT binary patch delta 4028 zcmc&$c~nzZ8h^A~{!JFUUP^D**Rn#nn)h{$lTy0%U-eKOrT`?JLX6 z?8}!WS=QJS%PY%g{gO|R$O)}gl|BTEGe8mq{(>eE70b#>Z2}j}b{I1uh1Vv8@z5IQ z9<$h9TDpvh${ny3`&3i!g5G$}`}vX`m}M7);fQ1ds^G z9AMbaijso{gO?C<dktKNv*aU?HavFZ=&p)BE7|6G#M$oLF2XsD5XvrLKV8_ zj1r==RdSt4LY}egK$M!1{XMG7QCr8BY_KSHBKP=Wre_=_Dg4aVBwVf|ZPZU9R8O1F zb7~8uZ3`%f3$KP&KQDdvSfeSZWHrCv#b;~$Gt&;%o%G3Riu@aAO6ul)^QSijOn9&R z4Z*iN4BvdHT77dcqw?XM>vMwDT?saew>++K-kxt9~!JVoG_)lEeUh!vfXk zJ*|1m!wPeT<`lLJy!c-6Y2S~hjI%Z;Hbf2`_qP5}{O2&sh6B``BfI+A&b=CWclN;} zok<_3=kij2=W6q2yt4{$J(kBEhPwtAqJTtlfnpXTD^gIH;1-1KZH)mEELqcfN( zi`i(?TJ#!QGTn=Gtg(dV^!DVGM&~4ED|of z&#=h!CC46}p+Sfk6l#%LuU6|c1>M;fdwTj+t#Rh|ot5$BRl}(*MVn4Z?^69k!K;RT??wC~$p4`$ zKh()B3Jue>h)Q(a&{@18bDTxD=ETZQSt8d>7JwQS*1&vZfF%n75gIR$BKKh|;UVE8 zOTisbRRxyI_0^6Tqj`P5d$NG75l*_)u{SCwGpy(zsd^RL)FyL0ka+&lgB{ATfv)T*UBo}|}y|KaMS_Qiz>Mpb+6^}8Y>U~^xXMv@8tSkHkIBhJNoEfgA&)}w%E((x-R47 z==R1z7f;S>J0UF1$m!j`cxc_wKFBdnInSbXM90~tOkjHLk88;l*q^vRc`X}M8-jT_ki!FAZcQc$`vO+M zQNst#88{X?G-$?9!lclWJCdZy5R)htbnpfdF+6WroWl>N_CPIR??D#wpPAYN66EW| z*ccLoW7O*;>=X_Z2ZOUZp)(GC^~98fO!Xo_n<5nCQC=i^^$`7ZF=Rch^1+jaE3-&c z5i@1LiZU45SwwWr4cbfd8k2`BHhR7xkK`?HoRyExLhm?w-C<^t=;1q2y5K`8ghk5} zTF<3x5f~FmhX4>^1)8hn7O7Gkp6A3E~ST4fW!&I0Vfj~C`{Z4EO3R?r7vc=2gW9Tu+XE?w8^7D z+#L=+G45{RP-h*)Jp)&)2X32!cG|}ea!VG+yfjfl?uv7&y+DIt4D15P-%2HI!V?Eh bq+5LStdgJOK~{MvSQ%{>-L|xY z+AdsMU!~3}+S&>(rOTkMLfF1E&ZQWK&O?BK>i?OWIqO7a0%g^HzB(j6j{O3qA6MFiOj90{XB4y>PK$vhb4|;ZZ z_XDXMF4q4_yoAzs^@(SASosI}Qc4MCi@fo{g1@M5(m0Occn%%4%T>t?Uw3+m*Ybn2Y+O_-uEQ;|D2mB~WS+ z-i(_~-iug#JEa*AdP+*bR3gs}Qd9twhXSd^$@3v>Fqmt1y#x#%@&*T*v#s8pU~%q} z1cATyeQx8k)n3a+y4I^#tt^b>56Hs5PUB3PTE6Iim-06EH9QqQ?3Maw za(EIM(&odM^n*@(8yHUhFImfA+CP>xQ`>1)9MugVn*DQMJA%@R^T@nA z08@$to}P*yt6$DrwqKHJj}=4L&jfw^`X|GW$)DXj;id2!D;XYZsw^D*Y_#R}gJ{tG zNa_`0y?t;0FA5%S$QrFU{ID~A8+XsvS0bM^=k{!G+FM)MGum#Gw|stmJl1`C-HDS$ z$5s}99C`oFh1iLv*P4%4UA;8!Ewgcp4b$Hp$jGi7o86`#tPhOY_o>|PUybosUVQ28 z(}zY&#`Fi7T&MD0V5t=7`gQno3*WOnDd58W@m-oKIC*s#}Q zu&pQ?Nzd;PCLUWB}UZ{GrRViX{zQ@$PqA4s76qMhc4441`nMhED{n5y!mor zf+=n;iReMcSQ;;%=O7le@{(|AMtO3O?B+J-PAYS`P;a*TVFo)yfKqRJ@P()e7Oe?X z@k2H6)c=;L)5DR$l{5^NsgLmAsP{@ce{gkVP}u3y>+q9S+)2JQYuj0JX+t)dT{RM! zpF4D;Lh3h^snWl>etlX*d7B|QTkY90FxB3AiT`Hk{l_o(h{JnJzI%0A|MEVcfUM4wU^fA>!P;<}wrmL9b>o)=FfU7PXWHq+rk z6n^iWm7C3CFCyus4ZezwMcWs2s>CS^H+B#VkRVu4+IBC8-#@s&UGV-!9wcyi8;}L{ z@g(dX2*Qh)OnVnRj0qs&W=Cgn>zvh!$Xf&f)WSe6bc4H4XNOeDB6d6rsC0p#EZN@) z@?0WfSMebv0_jV9oS+>LDs;oputGTB=K~$|>5hH&`1s66H|Ry=q$di-AMDdR`#l1q zx#){6Z^}aETiWy@c3%KSr}e>9KvMXg8D9QKIhhX$RImv`?qCD)Ik{UJ1Pzqb;V^Xg z-s8(&GZ5Vc_jiQT;n84wT)|5NC<{#BE}e*s5!Yr+;suILnC6l zNF2C3ga6R2GN)Ugr>p|#FcBTvJv>P&3^5Z*u#{-%bPZu!3qvY~;^&mpg^2kf znyag<73DN7Fc@44lo9m_ptD3Tz=lXLq7GtO1BH)P4hsK6go*5!BV#GztY`BJ2gT4G zl2qCoi;(U99$BP2(W8$Sv0LQm5+^^-pY6@DsL&-Szw*MY-87 TT<9FWP;z3KkRaY(jQ;yC2*6G5 diff --git a/test/test_index.py b/test/test_index.py index 9040f41..8dee69d 100644 --- a/test/test_index.py +++ b/test/test_index.py @@ -32,7 +32,6 @@ __author__ = 'jdavid@itaapy.com (J. David Ibáñez)' import unittest -import pygit2 import utils @@ -47,6 +46,50 @@ class IndexTest(utils.RepoTestCase): def test_index(self): self.assertNotEqual(None, self.repo.index) + def test_read(self): + index = self.repo.index + self.assertEqual(len(index), 0) + index.read() + self.assertEqual(len(index), 1) + + self.assertRaises(TypeError, lambda: index[()]) + self.assertRaisesWithArg(ValueError, -4, lambda: index[-4]) + self.assertRaisesWithArg(KeyError, 'abc', lambda: index['abc']) + + sha = '3b18e512dba79e4c8300dd08aeb37f8e728b8dad' + self.assertTrue('hello.txt' in index) + self.assertEqual(index['hello.txt'].sha, sha) + self.assertEqual(index[0].sha, sha) + + def test_add(self): + index = self.repo.index + index.read() + + sha = '0907563af06c7464d62a70cdd135a6ba7d2b41d8' + self.assertFalse('bye.txt' in index) + index.add('bye.txt', 0) + self.assertTrue('bye.txt' in index) + self.assertEqual(len(index), 2) + self.assertEqual(index['bye.txt'].sha, sha) + + def test_clear(self): + index = self.repo.index + index.read() + self.assertEqual(len(index), 1) + index.clear() + self.assertEqual(len(index), 0) + + def test_write(self): + index = self.repo.index + index.read() + index.add('bye.txt', 0) + index.write() + + index.clear() + self.assertFalse('bye.txt' in index) + index.read() + self.assertTrue('bye.txt' in index) + if __name__ == '__main__': unittest.main() diff --git a/test/utils.py b/test/utils.py index bf18579..57828f1 100644 --- a/test/utils.py +++ b/test/utils.py @@ -36,18 +36,7 @@ import zipfile import pygit2 -def open_repo(repo_dir): - repo_path = os.path.join(os.path.dirname(__file__), 'data', repo_dir) - temp_dir = tempfile.mkdtemp() - temp_repo_path = os.path.join(temp_dir, repo_dir) - shutil.copytree(repo_path, temp_repo_path) - return temp_dir, pygit2.Repository(temp_repo_path) - - -class BareRepoTestCase(unittest.TestCase): - - def setUp(self): - self._temp_dir, self.repo = open_repo('testrepo.git') +class BaseTestCase(unittest.TestCase): def tearDown(self): shutil.rmtree(self._temp_dir) @@ -61,7 +50,21 @@ class BareRepoTestCase(unittest.TestCase): self.fail('%s(%r) not raised' % (exc_class.__name__, arg)) -class RepoTestCase(unittest.TestCase): +def open_repo(repo_dir): + repo_path = os.path.join(os.path.dirname(__file__), 'data', repo_dir) + temp_dir = tempfile.mkdtemp() + temp_repo_path = os.path.join(temp_dir, repo_dir) + shutil.copytree(repo_path, temp_repo_path) + return temp_dir, pygit2.Repository(temp_repo_path) + + +class BareRepoTestCase(BaseTestCase): + + def setUp(self): + self._temp_dir, self.repo = open_repo('testrepo.git') + + +class RepoTestCase(BaseTestCase): def setUp(self): repo_dir = 'testrepo' @@ -73,6 +76,3 @@ class RepoTestCase(unittest.TestCase): self._temp_dir = temp_dir temp_repo_path = os.path.join(temp_dir, repo_dir, '.git') self.repo = pygit2.Repository(temp_repo_path) - - def tearDown(self): - shutil.rmtree(self._temp_dir)