~bzr/bzr-webserve/webserve-dev

« back to all changes in this revision

Viewing changes to test_webserve.py

  • Committer: Goffredo Baroncelli
  • Date: 2007-12-28 14:58:04 UTC
  • mfrom: (255.1.2 webserve)
  • Revision ID: ghigo@cassiopea.homelinux.net-20071228145804-s1wpbu03etpssyd8
Small bugfix and new tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
 
39
39
class _TestWebserveBase(ExternalBase):
40
40
 
 
41
    format=None
 
42
 
 
43
    def make_branch_and_tree(self, relpath):
 
44
        return super(_TestWebserveBase, self).make_branch_and_tree(relpath, self.format)
 
45
 
41
46
    def do_test(self, url, repo=None):
42
47
        """Call the webserve engine, with the url "url"
43
48
           If repo==Null, the repo is in the current working dir
113
118
        file.close()
114
119
 
115
120
 
116
 
class TestWebserve(_TestWebserveBase):
117
121
 
 
122
class _TestWebserve(_TestWebserveBase):    
118
123
    def _prepare(self):
119
124
 
120
125
        wt = self.make_branch_and_tree('.')
130
135
        wt.add(["meep_dir"])
131
136
        wt.add(["meep_dir/meep.txt"])
132
137
        wt.remove("hello.txt")
133
 
        os.symlink("meep_dir/meep.txt", "link")
 
138
        if bzrlib.osutils.has_symlinks():
 
139
            os.symlink("meep_dir/meep.txt", "link")
 
140
        else:
 
141
            self.build_tree_contents([
 
142
                ('link', "meep_content\n")])
134
143
        wt.add(["link"])
135
144
        wt.commit("commit3")
136
145
        wt.rename_one("meep_dir/meep.txt", "./meep_moved.txt")
192
201
        log = self.do_test("?cmd=inventory;rev=3")
193
202
        self.assertContainsRe(log, "goodbye.txt")
194
203
        self.assertContainsRe(log, "meep_dir/")
195
 
        self.assertContainsRe(log, "@.*link")
 
204
        if bzrlib.osutils.has_symlinks():
 
205
            self.assertContainsRe(log, "@.*link")
196
206
        log = self.do_test("?cmd=inventory;rev=3;path=meep_dir/")
197
207
        self.assertContainsRe(log, "meep.txt")
198
208
 
225
235
        log = self.do_test("?cmd=content;rev=3;path=meep_dir/meep.txt")
226
236
        self.assertContainsRe(log, "meep_content")
227
237
        self.assertContainsRe(log, "commit3")
228
 
 
229
 
        log = self.do_test("?cmd=content;rev=3;path=link")
230
 
        self.assertContainsReMultiline(log, "link.*->.*meep_dir/meep.txt")
 
238
        if bzrlib.osutils.has_symlinks():
 
239
            log = self.do_test("?cmd=content;rev=3;path=link")
 
240
            self.assertContainsReMultiline(log, "link.*->.*meep_dir/meep.txt")
231
241
 
232
242
    def test_content_wrong_path_wrong_revid(self):
233
243
 
519
529
        self.assertContainsRe(log, "commit2")
520
530
        self.assertContainsRe(log, "commit3")
521
531
 
522
 
 
 
532
 
 
533
class TestWebserve_pack092(_TestWebserve):
 
534
    format="pack-0.92"
 
535
 
 
536
class TestWebserve_dirstate(_TestWebserve):
 
537
    format="dirstate"
 
538
 
 
539
class TestWebserve_dirstate_tags(_TestWebserve):
 
540
    format="dirstate-tags"
 
541
 
 
542
class TestWebserve_knit(_TestWebserve):
 
543
    format="knit"
 
544
 
 
545
class TestWebserve_rich_root(_TestWebserve):
 
546
    format="rich-root"
 
547
 
 
548
class TestWebserve_rich_root_pack(_TestWebserve):
 
549
    format="rich-root-pack"    
 
550
 
 
551
# import new
 
552
# for fmt in ['pack-0.92', 'dirstate', 'dirstate-tags', 'knit',
 
553
            # 'rich-root', 'rich-root-pack']:
 
554
    # clsname = 'TestWebserve_'+fmt.replace('-','_').replace('.','_')
 
555
    # new.classobj(clsname, (_TestWebserve,), {'format': fmt})
 
556
    
523
557
class TestWebserveFilterComment(_TestWebserveBase):
524
558
 
525
559
    def update_hgweb(self, hg):
989
1023
 
990
1024
        write2(s, t("tmpl", line=f))
991
1025
        self.assertEqual(s.getvalue(), "tmpl = --> #line# <--")
992
 
 
 
1026
        
 
1027
class TestConfig(TestCaseInTempDir):
 
1028
 
 
1029
    def _prepare(self):
 
1030
    
 
1031
        f = open("test.cfg", "w")
 
1032
        f.write("""
 
1033
# comment
 
1034
; example of comment
 
1035
[DEFAULT]
 
1036
key1 = val1
 
1037
key2 = val2
 
1038
key3 = val6
 
1039
 
 
1040
[section1]
 
1041
key1 = val3
 
1042
key2 = val5
 
1043
 
 
1044
[section2]
 
1045
key1 = val4
 
1046
 
 
1047
""")
 
1048
        f.close()
 
1049
        
 
1050
        c = hgweb.hgwebdir._cfg_klass()
 
1051
        c.read("test.cfg")
 
1052
        
 
1053
        return c
 
1054
        
 
1055
    def testGetSimple(self):
 
1056
    
 
1057
        c = self._prepare()
 
1058
        v = c.get("section1", "key1", "default")
 
1059
        
 
1060
        self.assertEqual(v, "val3")
 
1061
 
 
1062
    def testGetDefaultSection(self):
 
1063
    
 
1064
        c = self._prepare()
 
1065
        
 
1066
        v = c.get("section2", "key2", "default")    
 
1067
        self.assertEqual(v, "val2")
 
1068
        v = c.get("section2", "key3", "default")    
 
1069
        self.assertEqual(v, "val6")
 
1070
 
 
1071
 
 
1072
    def testGetDefaultValue(self):
 
1073
    
 
1074
        c = self._prepare()
 
1075
        v = c.get("section2", "key4", "default")
 
1076
        
 
1077
        self.assertEqual(v, "default")
993
1078