Mercurial > treepkg
annotate test/test_git.py @ 557:9824e409388b
Refactor git branching
If a checkout is already available and the branch is changed in
the config git command would always fail because it doesn't know
the branch to track. Therefore always check if the branch is
locally available and if not checkout the remote branch
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Fri, 02 Sep 2011 08:45:28 +0000 |
parents | c4288095887f |
children |
rev | line source |
---|---|
509
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
1 # Copyright (C) 2010 by Intevation GmbH |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
2 # Authors: |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
3 # Bjoern Ricks <bjoern.ricks@intevation.de> |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
4 # |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
5 # This program is free software under the GPL (>=v2) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
6 # Read the file COPYING coming with the software for details. |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
7 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
8 """Tests for the treepkg.git module""" |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
9 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
10 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
11 import unittest |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
12 import os |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
13 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
14 import treepkg.run as run |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
15 from treepkg.cmdexpand import cmdexpand |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
16 from filesupport import FileTestMixin |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
17 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
18 import treepkg.git as git |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
19 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
20 class TestTagDetector(unittest.TestCase, FileTestMixin): |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
21 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
22 def test_tag(self): |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
23 dirname = self.create_test_specific_temp_dir() |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
24 repodir = self.create_temp_dir("repo") |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
25 clonedir = os.path.join(dirname, "clone") |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
26 run.call(cmdexpand("git init -q"), cwd=repodir) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
27 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
28 file = open(os.path.join(repodir, "tmp"), "w") |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
29 file.write("test") |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
30 file.close() |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
31 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
32 run.call(cmdexpand("git add tmp"), cwd=repodir) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
33 run.call(cmdexpand("git commit -m \"Add tmp file\""), cwd=repodir) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
34 run.call(cmdexpand("git tag tag1"), cwd=repodir) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
35 run.call(cmdexpand("git tag tag2"), cwd=repodir) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
36 run.call(cmdexpand("git tag anothertag"), cwd=repodir) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
37 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
38 tagdetector1 = git.TagDetector(repodir, "tag*", clonedir) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
39 tags = tagdetector1.list_tags() |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
40 urlrev = tagdetector1.newest_tag_revision() |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
41 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
42 self.assertEquals(len(tags), 2) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
43 self.assertEquals(urlrev[0], "tag2") |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
44 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
45 tagdetector2 = git.TagDetector(dirname, "*tag*", clonedir) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
46 tags = tagdetector2.list_tags() |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
47 urlrev = tagdetector2.newest_tag_revision() |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
48 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
49 self.assertEquals(len(tags), 3) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
50 self.assertEquals(urlrev[0], "tag2") |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
51 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
52 tagdetector3 = git.TagDetector(dirname, "another*", clonedir) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
53 tags = tagdetector3.list_tags() |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
54 urlrev = tagdetector3.newest_tag_revision() |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
55 |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
56 self.assertEquals(len(tags), 1) |
c4288095887f
update git tag detector and add test
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
57 self.assertEquals(urlrev[0], "anothertag") |