1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# test_config.py
# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors
#
# This module is part of GitPython and is released under
# the BSD License: http://www.opensource.org/licenses/bsd-license.php
from test.testlib import *
from git import *
import StringIO
from copy import copy
class TestBase(TestCase):
@classmethod
def setUpAll(cls):
cls.repo = Repo(GIT_REPO)
def _to_memcache(self, file_path):
fp = open(file_path, "r")
sio = StringIO.StringIO()
sio.write(fp.read())
sio.seek(0)
sio.name = file_path
return sio
def _parsers_equal_or_raise(self, lhs, rhs):
pass
def test_read_write(self):
# writer must create the exact same file as the one read before
for filename in ("git_config", "git_config_global"):
file_obj = self._to_memcache(fixture_path(filename))
file_obj_orig = copy(file_obj)
w_config = GitConfigParser(file_obj, read_only = False)
w_config.read() # enforce reading
assert w_config._sections
w_config.write() # enforce writing
assert file_obj.getvalue() == file_obj_orig.getvalue()
# END for each filename
def test_base(self):
path_repo = fixture_path("git_config")
path_global = fixture_path("git_config_global")
r_config = GitConfigParser([path_repo, path_global], read_only=True)
assert r_config.read_only
num_sections = 0
num_options = 0
# test reader methods
assert r_config._is_initialized == False
for section in r_config.sections():
num_sections += 1
for option in r_config.options(section):
num_options += 1
val = r_config.get(section, option)
assert val
# writing must fail
self.failUnlessRaises(IOError, r_config.set, section, option, None)
self.failUnlessRaises(IOError, r_config.remove_option, section, option )
# END for each option
self.failUnlessRaises(IOError, r_config.remove_section, section)
# END for each section
assert num_sections and num_options
assert r_config._is_initialized == True
self.fail("TODO: Base config writer testing")
|