MCPcopy Index your code
hub / github.com/foxcpp/maddy / DoTestDeliveryNonAtomic

Function DoTestDeliveryNonAtomic

internal/testutils/target.go:208–252  ·  view source on GitHub ↗
(t *testing.T, c module.StatusCollector, tgt module.DeliveryTarget, from string, to []string)

Source from the content-addressed store, hash-verified

206}
207
208func DoTestDeliveryNonAtomic(t *testing.T, c module.StatusCollector, tgt module.DeliveryTarget, from string, to []string) string {
209 t.Helper()
210
211 IDRaw := sha1.Sum([]byte(t.Name()))
212 encodedID := hex.EncodeToString(IDRaw[:])
213
214 testCtx := context.Background()
215
216 body := buffer.MemoryBuffer{Slice: []byte("foobar\r\n")}
217 msgMeta := module.MsgMetadata{
218 DontTraceSender: true,
219 ID: encodedID,
220 OriginalFrom: from,
221 }
222 t.Log("-- tgt.StartDelivery", from)
223 delivery, err := tgt.StartDelivery(testCtx, &msgMeta, from)
224 if err != nil {
225 t.Log("-- ... tgt.StartDelivery", from, err, exterrors.Fields(err))
226 t.Fatalf("Unexpected err: %v %+v", err, exterrors.Fields(err))
227 return encodedID
228 }
229 for _, rcpt := range to {
230 t.Log("-- delivery.AddRcpt", rcpt)
231 if err := delivery.AddRcpt(testCtx, rcpt, smtp.RcptOptions{}); err != nil {
232 t.Log("-- ... delivery.AddRcpt", rcpt, err, exterrors.Fields(err))
233 t.Log("-- delivery.Abort")
234 if err := delivery.Abort(testCtx); err != nil {
235 t.Log("-- delivery.Abort:", err, exterrors.Fields(err))
236 }
237 t.Fatalf("Unexpected err: %v %+v", err, exterrors.Fields(err))
238 return encodedID
239 }
240 }
241 t.Log("-- delivery.BodyNonAtomic")
242 hdr := textproto.Header{}
243 hdr.Add("B", "2")
244 hdr.Add("A", "1")
245 delivery.(module.PartialDelivery).BodyNonAtomic(testCtx, c, hdr, body)
246 t.Log("-- delivery.Commit")
247 if err := delivery.Commit(testCtx); err != nil {
248 t.Fatalf("Unexpected err: %v %+v", err, exterrors.Fields(err))
249 }
250
251 return encodedID
252}
253
254const DeliveryData = "A: 1\r\n" +
255 "B: 2\r\n" +

Calls 8

FieldsFunction · 0.92
AddMethod · 0.80
NameMethod · 0.65
StartDeliveryMethod · 0.65
AddRcptMethod · 0.65
AbortMethod · 0.65
BodyNonAtomicMethod · 0.65
CommitMethod · 0.65