diff options
author | Santiago M. Mola <santi@mola.io> | 2016-10-26 18:41:39 +0200 |
---|---|---|
committer | Máximo Cuadros <mcuadros@gmail.com> | 2016-10-26 16:41:39 +0000 |
commit | 61f0188edcea55dbcfa1c3a35da0c34fed10fd54 (patch) | |
tree | 08b59ecd20719f448d64073845bf40cf2d86fd7c /storage/filesystem/config_test.go | |
parent | 194da90f885d4cb7cf2bf4c84a74e5d559000764 (diff) | |
download | go-git-61f0188edcea55dbcfa1c3a35da0c34fed10fd54.tar.gz |
formats/config: Added encoder/decoder for git config files. (#97)
* WIP: Add config format parser.
* add decoder based on gcfg.
Portions of code taken from:
https://github.com/go-gcfg/gcfg/blob/5b9f94ee80b2331c3982477bd84be8edd857df33/read.go
* add git config encoder and config methods.
* use format/config in storage/filesystem for read
* use format/config in storage/filesystem to write
* formats/config: improve docs.
* formats/config: improve tests.
* formats/config: use our fork of gcfg; improve api.
* formats/config: improve api.
* storage/filesystem: fix gofmt
* formats/config: use NoSubsection constant.
* formats/config: add doc.go
* formats/config: requested sytle changes.
* formats/config: do not use *_test packages.
Diffstat (limited to 'storage/filesystem/config_test.go')
-rw-r--r-- | storage/filesystem/config_test.go | 47 |
1 files changed, 19 insertions, 28 deletions
diff --git a/storage/filesystem/config_test.go b/storage/filesystem/config_test.go index cbff1e0..20af595 100644 --- a/storage/filesystem/config_test.go +++ b/storage/filesystem/config_test.go @@ -1,7 +1,7 @@ package filesystem import ( - "bytes" + "gopkg.in/src-d/go-git.v4/formats/config" . "gopkg.in/check.v1" ) @@ -10,31 +10,22 @@ type ConfigSuite struct{} var _ = Suite(&ConfigSuite{}) -func (s *ConfigSuite) TestConfigFileDecode(c *C) { - config := &ConfigFile{} - - err := config.Decode(bytes.NewBuffer(configFixture)) - c.Assert(err, IsNil) - - c.Assert(config.Remotes, HasLen, 2) - c.Assert(config.Remotes["origin"].URL, Equals, "git@github.com:src-d/go-git.git") - c.Assert(config.Remotes["origin"].Fetch, HasLen, 1) - c.Assert(config.Remotes["origin"].Fetch[0].String(), Equals, "+refs/heads/*:refs/remotes/origin/*") +func (s *ConfigSuite) TestParseRemote(c *C) { + remote := parseRemote(&config.Subsection{ + Name: "origin", + Options: []*config.Option{ + { + Key: "url", + Value: "git@github.com:src-d/go-git.git", + }, + { + Key: "fetch", + Value: "+refs/heads/*:refs/remotes/origin/*", + }, + }, + }) + + c.Assert(remote.URL, Equals, "git@github.com:src-d/go-git.git") + c.Assert(remote.Fetch, HasLen, 1) + c.Assert(remote.Fetch[0].String(), Equals, "+refs/heads/*:refs/remotes/origin/*") } - -var configFixture = []byte(` -[core] - repositoryformatversion = 0 - filemode = true - bare = false - logallrefupdates = true -[remote "origin"] - url = git@github.com:src-d/go-git.git - fetch = +refs/heads/*:refs/remotes/origin/* -[branch "v4"] - remote = origin - merge = refs/heads/v4 -[remote "mcuadros"] - url = git@github.com:mcuadros/go-git.git - fetch = +refs/heads/*:refs/remotes/mcuadros/* -`) |