Merge pull request #22 from abhinav/no-import-testing

Remove "testing" import from public interface
This commit is contained in:
Yusuke Inuzuka 2019-08-25 20:10:15 +09:00 committed by GitHub
commit 4a770685c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 73 additions and 36 deletions

View file

@ -1,10 +1,12 @@
package goldmark package goldmark_test
import ( import (
"encoding/json" "encoding/json"
"io/ioutil" "io/ioutil"
"testing" "testing"
. "github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/renderer/html" "github.com/yuin/goldmark/renderer/html"
) )
@ -26,9 +28,9 @@ func TestSpec(t *testing.T) {
if err := json.Unmarshal(bs, &testCases); err != nil { if err := json.Unmarshal(bs, &testCases); err != nil {
panic(err) panic(err)
} }
cases := []MarkdownTestCase{} cases := []testutil.MarkdownTestCase{}
for _, c := range testCases { for _, c := range testCases {
cases = append(cases, MarkdownTestCase{ cases = append(cases, testutil.MarkdownTestCase{
No: c.Example, No: c.Example,
Markdown: c.Markdown, Markdown: c.Markdown,
Expected: c.HTML, Expected: c.HTML,
@ -38,5 +40,5 @@ func TestSpec(t *testing.T) {
html.WithXHTML(), html.WithXHTML(),
html.WithUnsafe(), html.WithUnsafe(),
)) ))
DoTestCases(markdown, cases, t) testutil.DoTestCases(markdown, cases, t)
} }

View file

@ -1,9 +1,11 @@
package extension package extension
import ( import (
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/renderer/html"
"testing" "testing"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/renderer/html"
) )
func TestDefinitionList(t *testing.T) { func TestDefinitionList(t *testing.T) {
@ -15,5 +17,5 @@ func TestDefinitionList(t *testing.T) {
DefinitionList, DefinitionList,
), ),
) )
goldmark.DoTestCaseFile(markdown, "_test/definition_list.txt", t) testutil.DoTestCaseFile(markdown, "_test/definition_list.txt", t)
} }

View file

@ -1,9 +1,11 @@
package extension package extension
import ( import (
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/renderer/html"
"testing" "testing"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/renderer/html"
) )
func TestFootnote(t *testing.T) { func TestFootnote(t *testing.T) {
@ -15,5 +17,5 @@ func TestFootnote(t *testing.T) {
Footnote, Footnote,
), ),
) )
goldmark.DoTestCaseFile(markdown, "_test/footnote.txt", t) testutil.DoTestCaseFile(markdown, "_test/footnote.txt", t)
} }

View file

@ -1,9 +1,11 @@
package extension package extension
import ( import (
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/renderer/html"
"testing" "testing"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/renderer/html"
) )
func TestLinkify(t *testing.T) { func TestLinkify(t *testing.T) {
@ -15,5 +17,5 @@ func TestLinkify(t *testing.T) {
Linkify, Linkify,
), ),
) )
goldmark.DoTestCaseFile(markdown, "_test/linkify.txt", t) testutil.DoTestCaseFile(markdown, "_test/linkify.txt", t)
} }

View file

@ -1,9 +1,11 @@
package extension package extension
import ( import (
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/renderer/html"
"testing" "testing"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/renderer/html"
) )
func TestStrikethrough(t *testing.T) { func TestStrikethrough(t *testing.T) {
@ -15,5 +17,5 @@ func TestStrikethrough(t *testing.T) {
Strikethrough, Strikethrough,
), ),
) )
goldmark.DoTestCaseFile(markdown, "_test/strikethrough.txt", t) testutil.DoTestCaseFile(markdown, "_test/strikethrough.txt", t)
} }

View file

@ -1,9 +1,11 @@
package extension package extension
import ( import (
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/renderer/html"
"testing" "testing"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/renderer/html"
) )
func TestTable(t *testing.T) { func TestTable(t *testing.T) {
@ -15,5 +17,5 @@ func TestTable(t *testing.T) {
Table, Table,
), ),
) )
goldmark.DoTestCaseFile(markdown, "_test/table.txt", t) testutil.DoTestCaseFile(markdown, "_test/table.txt", t)
} }

View file

@ -1,9 +1,11 @@
package extension package extension
import ( import (
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/renderer/html"
"testing" "testing"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/renderer/html"
) )
func TestTaskList(t *testing.T) { func TestTaskList(t *testing.T) {
@ -15,5 +17,5 @@ func TestTaskList(t *testing.T) {
TaskList, TaskList,
), ),
) )
goldmark.DoTestCaseFile(markdown, "_test/tasklist.txt", t) testutil.DoTestCaseFile(markdown, "_test/tasklist.txt", t)
} }

View file

@ -1,9 +1,11 @@
package extension package extension
import ( import (
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/renderer/html"
"testing" "testing"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/renderer/html"
) )
func TestTypographer(t *testing.T) { func TestTypographer(t *testing.T) {
@ -15,5 +17,5 @@ func TestTypographer(t *testing.T) {
Typographer, Typographer,
), ),
) )
goldmark.DoTestCaseFile(markdown, "_test/typographer.txt", t) testutil.DoTestCaseFile(markdown, "_test/typographer.txt", t)
} }

View file

@ -1,8 +1,10 @@
package goldmark package goldmark_test
import ( import (
"testing" "testing"
. "github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/renderer/html" "github.com/yuin/goldmark/renderer/html"
) )
@ -11,5 +13,5 @@ func TestDefinitionList(t *testing.T) {
html.WithXHTML(), html.WithXHTML(),
html.WithUnsafe(), html.WithUnsafe(),
)) ))
DoTestCaseFile(markdown, "_test/extra.txt", t) testutil.DoTestCaseFile(markdown, "_test/extra.txt", t)
} }

View file

@ -1,8 +1,11 @@
package goldmark package goldmark_test
import ( import (
"github.com/yuin/goldmark/parser"
"testing" "testing"
. "github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/parser"
) )
func TestAttributeAndAutoHeadingID(t *testing.T) { func TestAttributeAndAutoHeadingID(t *testing.T) {
@ -12,5 +15,5 @@ func TestAttributeAndAutoHeadingID(t *testing.T) {
parser.WithAutoHeadingID(), parser.WithAutoHeadingID(),
), ),
) )
DoTestCaseFile(markdown, "_test/options.txt", t) testutil.DoTestCaseFile(markdown, "_test/options.txt", t)
} }

View file

@ -1,17 +1,26 @@
package goldmark package testutil
import ( import (
"bufio" "bufio"
"bytes" "bytes"
"fmt" "fmt"
"github.com/yuin/goldmark/util"
"os" "os"
"runtime/debug" "runtime/debug"
"strconv" "strconv"
"strings" "strings"
testing "testing"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/util"
) )
// TestingT is a subset of the functionality provided by testing.T.
type TestingT interface {
Logf(string, ...interface{})
Skipf(string, ...interface{})
Errorf(string, ...interface{})
FailNow()
}
type MarkdownTestCase struct { type MarkdownTestCase struct {
No int No int
Markdown string Markdown string
@ -21,7 +30,7 @@ type MarkdownTestCase struct {
const attributeSeparator = "//- - - - - - - - -//" const attributeSeparator = "//- - - - - - - - -//"
const caseSeparator = "//= = = = = = = = = = = = = = = = = = = = = = = =//" const caseSeparator = "//= = = = = = = = = = = = = = = = = = = = = = = =//"
func DoTestCaseFile(m Markdown, filename string, t *testing.T) { func DoTestCaseFile(m goldmark.Markdown, filename string, t TestingT) {
fp, err := os.Open(filename) fp, err := os.Open(filename)
if err != nil { if err != nil {
panic(err) panic(err)
@ -77,13 +86,13 @@ func DoTestCaseFile(m Markdown, filename string, t *testing.T) {
DoTestCases(m, cases, t) DoTestCases(m, cases, t)
} }
func DoTestCases(m Markdown, cases []MarkdownTestCase, t *testing.T) { func DoTestCases(m goldmark.Markdown, cases []MarkdownTestCase, t TestingT) {
for _, testCase := range cases { for _, testCase := range cases {
DoTestCase(m, testCase, t) DoTestCase(m, testCase, t)
} }
} }
func DoTestCase(m Markdown, testCase MarkdownTestCase, t *testing.T) { func DoTestCase(m goldmark.Markdown, testCase MarkdownTestCase, t TestingT) {
var ok bool var ok bool
var out bytes.Buffer var out bytes.Buffer
defer func() { defer func() {

View file

@ -0,0 +1,7 @@
package testutil
import "testing"
// This will fail to compile if the TestingT interface is changed in a way
// that doesn't conform to testing.T.
var _ TestingT = (*testing.T)(nil)