git_test.go (2102B)
1 // Copyright 2017-present The Hugo Authors. All rights reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // http://www.apache.org/licenses/LICENSE-2.0 7 // 8 // Unless required by applicable law or agreed to in writing, software 9 // distributed under the License is distributed on an "AS IS" BASIS, 10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 // See the License for the specific language governing permissions and 12 // limitations under the License. 13 14 package releaser 15 16 import ( 17 "testing" 18 19 qt "github.com/frankban/quicktest" 20 ) 21 22 func TestGitInfos(t *testing.T) { 23 c := qt.New(t) 24 skipIfCI(t) 25 infos, err := getGitInfos("v0.20", "hugo", "", false) 26 27 c.Assert(err, qt.IsNil) 28 c.Assert(len(infos) > 0, qt.Equals, true) 29 } 30 31 func TestIssuesRe(t *testing.T) { 32 c := qt.New(t) 33 34 body := ` 35 This is a commit message. 36 37 Updates #123 38 Fix #345 39 closes #543 40 See #456 41 ` 42 43 issues := extractIssues(body) 44 45 c.Assert(len(issues), qt.Equals, 4) 46 c.Assert(issues[0], qt.Equals, 123) 47 c.Assert(issues[2], qt.Equals, 543) 48 49 bodyNoIssues := ` 50 This is a commit message without issue refs. 51 52 But it has e #10 to make old regexp confused. 53 Streets #20. 54 ` 55 56 emptyIssuesList := extractIssues(bodyNoIssues) 57 c.Assert(len(emptyIssuesList), qt.Equals, 0) 58 } 59 60 func TestGitVersionTagBefore(t *testing.T) { 61 skipIfCI(t) 62 c := qt.New(t) 63 v1, err := gitVersionTagBefore("v0.18") 64 c.Assert(err, qt.IsNil) 65 c.Assert(v1, qt.Equals, "v0.17") 66 } 67 68 func TestTagExists(t *testing.T) { 69 skipIfCI(t) 70 c := qt.New(t) 71 b1, err := tagExists("v0.18") 72 c.Assert(err, qt.IsNil) 73 c.Assert(b1, qt.Equals, true) 74 75 b2, err := tagExists("adfagdsfg") 76 c.Assert(err, qt.IsNil) 77 c.Assert(b2, qt.Equals, false) 78 } 79 80 func skipIfCI(t *testing.T) { 81 if isCI() { 82 // Travis has an ancient git with no --invert-grep: https://github.com/travis-ci/travis-ci/issues/6328 83 // Also Travis clones very shallowly, making some of the tests above shaky. 84 t.Skip("Skip git test on Linux to make Travis happy.") 85 } 86 }