diff options
author | Sebastian Thiel <byronimo@gmail.com> | 2015-09-06 15:11:54 +0200 |
---|---|---|
committer | Sebastian Thiel <byronimo@gmail.com> | 2015-09-06 15:11:54 +0200 |
commit | 074842accb51b2a0c2c1193018d9f374ac5e948f (patch) | |
tree | fcb08fd49fe7e239e5defbb1de277054fe7b94f2 /git/test | |
parent | 7f8d9ca08352a28cba3b01e4340a24edc33e13e8 (diff) | |
download | gitpython-074842accb51b2a0c2c1193018d9f374ac5e948f.tar.gz |
fix(config): ignore empty values in config file
Similar to git, we now ignore options which have no value.
Previously it would not handle it consistently, and throw a parsing
error the first time the cache was built.
Afterwards, it was fully usable though.
Now we specifically check for the case of no-value options instead.
Closes #349
Diffstat (limited to 'git/test')
-rw-r--r-- | git/test/fixtures/git_config_with_empty_value | 4 | ||||
-rw-r--r-- | git/test/test_config.py | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/git/test/fixtures/git_config_with_empty_value b/git/test/fixtures/git_config_with_empty_value new file mode 100644 index 00000000..0427caea --- /dev/null +++ b/git/test/fixtures/git_config_with_empty_value @@ -0,0 +1,4 @@ +[color] + ui +[core] + filemode = true
\ No newline at end of file diff --git a/git/test/test_config.py b/git/test/test_config.py index 7758a094..22f342aa 100644 --- a/git/test/test_config.py +++ b/git/test/test_config.py @@ -210,3 +210,10 @@ class TestBase(TestCase): self.assertEqual(w_config.get('alias', 'rbi'), '"!g() { git rebase -i origin/${1:-master} ; } ; g"') w_config.release() self.assertEqual(file_obj.getvalue(), self._to_memcache(fixture_path('.gitconfig')).getvalue()) + + def test_empty_config_value(self): + cr = GitConfigParser(fixture_path('git_config_with_empty_value'), read_only=True) + + assert cr.get_value('core', 'filemode'), "Should read keys with values" + + self.failUnlessRaises(cp.NoOptionError, cr.get_value, 'color', 'ui') |