Skip to content

Commit

Permalink
DE-1351 Add linters to tests (#347)
Browse files Browse the repository at this point in the history
vtopc authored Nov 18, 2024

Verified

This commit was signed with the committer’s verified signature. The key has expired.
dietmarw Dietmar Winkler
1 parent 5724c8c commit 35ac1f9
Showing 6 changed files with 41 additions and 19 deletions.
11 changes: 9 additions & 2 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -38,6 +38,14 @@ linters-settings:
- (io.Closer).Close
- (io.ReadCloser).Close

gosec:
# To specify a set of rules to explicitly exclude.
# Available rules: https://github.com/securego/gosec#available-rules
# Default: []
excludes:
# Not critical for the http client
- G114 # Use of net/http serve function that has no support for setting timeouts

govet:
enable-all: true
disable:
@@ -76,8 +84,7 @@ issues:

run:
# include test files or not, default is true
# TODO(DE-1139): Enable
tests: false
tests: true

# Timeout for analysis, e.g. 30s, 5m.
# Default: 1m
6 changes: 5 additions & 1 deletion common_test.go
Original file line number Diff line number Diff line change
@@ -13,7 +13,11 @@ import (
func randomString(n int, prefix string) string {
const alphanum = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
var bytes = make([]byte, n)
rand.Read(bytes)
_, err := rand.Read(bytes)
if err != nil {
panic(fmt.Sprintf("rand.Read: %v", err))
}

for i, b := range bytes {
bytes[i] = alphanum[b%byte(len(alphanum))]
}
5 changes: 3 additions & 2 deletions mailgun_test.go
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ import (
)

const domain = "valid-mailgun-domain"
const apiKey = "valid-mailgun-api-key"
const apiKey = "valid-mailgun-api-key" //nolint:gosec // This is a test

func TestMailgun(t *testing.T) {
m := mailgun.NewMailgun(domain, apiKey)
@@ -43,7 +43,8 @@ func TestValidBaseAPI(t *testing.T) {
b, err := json.Marshal(resp)
require.NoError(t, err)

w.Write(b)
_, err = w.Write(b)
require.NoError(t, err)
}))

apiBases := []string{
31 changes: 20 additions & 11 deletions messages_test.go
Original file line number Diff line number Diff line change
@@ -116,7 +116,8 @@ func TestSendMGSTO(t *testing.T) {

ctx := context.Background()
m := mailgun.NewMessage(fromUser, exampleSubject, exampleText, toUser)
m.SetSTOPeriod("24h")
err = m.SetSTOPeriod("24h")
require.NoError(t, err)
msg, id, err := mg.Send(ctx, m)
require.NoError(t, err)
t.Log("TestSendMGSTO:MSG(" + msg + "),ID(" + id + ")")
@@ -218,9 +219,12 @@ func TestSendMGTag(t *testing.T) {

ctx := context.Background()
m := mailgun.NewMessage(fromUser, exampleSubject, exampleText+"Tags Galore!\n", toUser)
m.AddTag("FooTag")
m.AddTag("BarTag")
m.AddTag("BlortTag")
err = m.AddTag("FooTag")
require.NoError(t, err)
err = m.AddTag("BarTag")
require.NoError(t, err)
err = m.AddTag("BlortTag")
require.NoError(t, err)
msg, id, err := mg.Send(ctx, m)
require.NoError(t, err)
t.Log("TestSendTag:MSG(" + msg + "),ID(" + id + ")")
@@ -255,7 +259,8 @@ func TestSendMGBatchFailRecipients(t *testing.T) {

m := mailgun.NewMessage(fromUser, exampleSubject, exampleText+"Batch\n")
for i := 0; i < mailgun.MaxNumberOfRecipients; i++ {
m.AddRecipient("") // We expect this to indicate a failure at the API
err := m.AddRecipient("") // We expect this to indicate a failure at the API
require.NoError(t, err)
}
err := m.AddRecipientAndVariables(toUser, nil)
// In case of error the SDK didn't send the message,
@@ -397,10 +402,14 @@ func TestSendMGMessageVariables(t *testing.T) {
mg.SetAPIBase(srv.URL + "/v3")

m := mailgun.NewMessage(fromUser, exampleSubject, exampleText, toUser)
m.AddVariable(exampleStrVarKey, exampleStrVarVal)
m.AddVariable(exampleBoolVarKey, false)
m.AddVariable(exampleMapVarKey, exampleMapVarVal)
m.AddTemplateVariable("templateVariable", exampleTemplateVariable)
err := m.AddVariable(exampleStrVarKey, exampleStrVarVal)
require.NoError(t, err)
err = m.AddVariable(exampleBoolVarKey, false)
require.NoError(t, err)
err = m.AddVariable(exampleMapVarKey, exampleMapVarVal)
require.NoError(t, err)
err = m.AddTemplateVariable("templateVariable", exampleTemplateVariable)
require.NoError(t, err)

msg, id, err := mg.Send(context.Background(), m)
require.NoError(t, err)
@@ -553,11 +562,11 @@ func TestResendStored(t *testing.T) {
mg := mailgun.NewMailgun(exampleDomain, exampleAPIKey)
mg.SetAPIBase(srv.URL + "/v3")

msg, id, err := mg.ReSend(context.Background(), srv.URL+"/v3/some-url")
_, _, err := mg.ReSend(context.Background(), srv.URL+"/v3/some-url")
require.NotNil(t, err)
require.EqualError(t, err, "must provide at least one recipient")

msg, id, err = mg.ReSend(context.Background(), srv.URL+"/v3/some-url", toUser)
msg, id, err := mg.ReSend(context.Background(), srv.URL+"/v3/some-url", toUser)
require.NoError(t, err)
assert.Equal(t, exampleMessage, msg)
assert.Equal(t, exampleID, id)
1 change: 1 addition & 0 deletions storage_test.go
Original file line number Diff line number Diff line change
@@ -25,6 +25,7 @@ func TestStorage(t *testing.T) {
t.Logf("New Email: %s Id: %s\n", msg, id)

url, err := findStoredMessageURL(mg, strings.Trim(id, "<>"))
require.NoError(t, err)

resp, err := mg.GetStoredMessage(ctx, url)
require.NoError(t, err)
6 changes: 3 additions & 3 deletions webhooks_test.go
Original file line number Diff line number Diff line change
@@ -149,7 +149,7 @@ func buildMultipartFormRequest(fields map[string]string) *http.Request {
writer := multipart.NewWriter(buf)

for k, v := range fields {
writer.WriteField(k, v)
_ = writer.WriteField(k, v)
}

writer.Close()
@@ -171,8 +171,8 @@ func getSignatureFields(key string, signed bool) map[string]string {

if signed {
h := hmac.New(sha256.New, []byte(key))
io.WriteString(h, fields["timestamp"])
io.WriteString(h, fields["token"])
_, _ = io.WriteString(h, fields["timestamp"])
_, _ = io.WriteString(h, fields["token"])
hash := h.Sum(nil)

fields["signature"] = hex.EncodeToString(hash)

0 comments on commit 35ac1f9

Please sign in to comment.