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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,9 +1,11 @@
package extension
import (
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/renderer/html"
"testing"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/renderer/html"
)
func TestTypographer(t *testing.T) {
@ -15,5 +17,5 @@ func TestTypographer(t *testing.T) {
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 (
"testing"
. "github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/renderer/html"
)
@ -11,5 +13,5 @@ func TestDefinitionList(t *testing.T) {
html.WithXHTML(),
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 (
"github.com/yuin/goldmark/parser"
"testing"
. "github.com/yuin/goldmark"
"github.com/yuin/goldmark/testutil"
"github.com/yuin/goldmark/parser"
)
func TestAttributeAndAutoHeadingID(t *testing.T) {
@ -12,5 +15,5 @@ func TestAttributeAndAutoHeadingID(t *testing.T) {
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 (
"bufio"
"bytes"
"fmt"
"github.com/yuin/goldmark/util"
"os"
"runtime/debug"
"strconv"
"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 {
No int
Markdown string
@ -21,7 +30,7 @@ type MarkdownTestCase struct {
const attributeSeparator = "//- - - - - - - - -//"
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)
if err != nil {
panic(err)
@ -77,13 +86,13 @@ func DoTestCaseFile(m Markdown, filename string, t *testing.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 {
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 out bytes.Buffer
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)