diff options
| author | Shulhan <ms@kilabit.info> | 2022-10-05 02:42:41 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2022-10-05 02:42:41 +0700 |
| commit | 00b6c3c97d91139a3f8a3e8e6ed80dbe8b065e92 (patch) | |
| tree | aaad7d86cb70e509973ec822b3f49b9f4e1f1a9a | |
| parent | dc974927fcf48b147bee320ef4e5a0f479350d58 (diff) | |
| download | pakakeh.go-00b6c3c97d91139a3f8a3e8e6ed80dbe8b065e92.tar.xz | |
lib/stmp: fix tests with -count=X, where X>1
This changes require all unit tests to use their own client.
| -rw-r--r-- | lib/smtp/client_test.go | 65 | ||||
| -rw-r--r-- | lib/smtp/smtp_test.go | 27 |
2 files changed, 70 insertions, 22 deletions
diff --git a/lib/smtp/client_test.go b/lib/smtp/client_test.go index 06678346..194071fa 100644 --- a/lib/smtp/client_test.go +++ b/lib/smtp/client_test.go @@ -40,17 +40,24 @@ func TestEhlo(t *testing.T) { }, }} + var ( + cl *Client + ) + for _, c := range cases { t.Log(c.desc) - got, err := testClient.ehlo(c.arg) + cl = testNewClient(false) + + got, err := cl.ehlo(c.arg) if err != nil { t.Fatal(err) } + t.Logf(`got: %+v`, got) test.Assert(t, "Ehlo", c.exp, got) - test.Assert(t, "ServerInfo.Domain", c.expServerInfo.Domain, testClient.ServerInfo.Domain) - test.Assert(t, "ServerInfo.Info", c.expServerInfo.Info, testClient.ServerInfo.Info) + test.Assert(t, "ServerInfo.Domain", c.expServerInfo.Domain, cl.ServerInfo.Domain) + test.Assert(t, "ServerInfo.Info", c.expServerInfo.Info, cl.ServerInfo.Info) } } @@ -98,10 +105,14 @@ func TestAuth(t *testing.T) { }, }} + var ( + cl *Client = testNewClient(false) + ) + for _, c := range cases { t.Log(c.desc) - got, err := testClient.Authenticate(c.mech, c.username, c.password) + got, err := cl.Authenticate(c.mech, c.username, c.password) if err != nil { test.Assert(t, "error", c.expErr, err.Error()) continue @@ -168,10 +179,14 @@ func TestExpand(t *testing.T) { }, }} + var ( + cl *Client = testNewClient(true) + ) + for _, c := range cases { t.Log(c.desc) - got, err := testClient.Expand(c.mlist) + got, err := cl.Expand(c.mlist) if err != nil { t.Fatal(err) } @@ -193,10 +208,14 @@ func TestHelp(t *testing.T) { }, }} + var ( + cl *Client = testNewClient(true) + ) + for _, c := range cases { t.Log(c.desc) - got, err := testClient.Help(c.arg) + got, err := cl.Help(c.arg) if err != nil { t.Fatal(err) } @@ -233,10 +252,14 @@ func TestSendCommand(t *testing.T) { }, }} + var ( + cl *Client = testNewClient(false) + ) + for _, c := range cases { t.Log(c.desc) - got, err := testClient.SendCommand(c.cmd) + got, err := cl.SendCommand(c.cmd) if err != nil { t.Fatal(err) } @@ -278,10 +301,14 @@ func TestMailTx(t *testing.T) { }, }} + var ( + cl *Client = testNewClient(true) + ) + for _, c := range cases { t.Log(c.desc) - got, err := testClient.MailTx(c.mail) + got, err := cl.MailTx(c.mail) if err != nil { test.Assert(t, "error", c.expErr, err.Error()) continue @@ -313,10 +340,14 @@ func TestVerify(t *testing.T) { }, }} + var ( + cl *Client = testNewClient(true) + ) + for _, c := range cases { t.Log(c.desc) - got, err := testClient.Verify(c.mailbox) + got, err := cl.Verify(c.mailbox) if err != nil { t.Fatal(err) } @@ -326,12 +357,18 @@ func TestVerify(t *testing.T) { } func TestQuit(t *testing.T) { - exp := &Response{ - Code: StatusClosing, - Message: "Service closing transmission channel", - } + var ( + cl *Client = testNewClient(false) + exp = &Response{ + Code: StatusClosing, + Message: "Service closing transmission channel", + } + + got *Response + err error + ) - got, err := testClient.Quit() + got, err = cl.Quit() if err != nil { t.Fatal(err) } diff --git a/lib/smtp/smtp_test.go b/lib/smtp/smtp_test.go index 4ade34ae..f7b18f4c 100644 --- a/lib/smtp/smtp_test.go +++ b/lib/smtp/smtp_test.go @@ -26,7 +26,6 @@ const ( ) var ( - testClient *Client testServer *Server testAccountFirst *Account testAccountSecond *Account @@ -84,7 +83,7 @@ func testRunServer() { }() } -func TestMain(m *testing.M) { +func testNewClient(withAuth bool) (cl *Client) { var ( opts = ClientOptions{ ServerUrl: testSMTPSAddress, @@ -92,18 +91,30 @@ func TestMain(m *testing.M) { } err error - s int + ) + if withAuth { + opts.AuthUser = testAccountFirst.Short() + opts.AuthPass = testPassword + opts.AuthMechanism = SaslMechanismPlain + } + + cl, err = NewClient(opts) + if err != nil { + log.Fatal(err) + } + + return cl +} + +func TestMain(m *testing.M) { + var ( + s int ) testRunServer() time.Sleep(100 * time.Millisecond) - testClient, err = NewClient(opts) - if err != nil { - log.Fatal(err.Error()) - } - s = m.Run() os.Exit(s) } |
