procurement-ingest/lambdas/po/email_processor/tests/fixtures/ai-fallback/non-coupa-02.eml
Adam Moussa 14fad0c317
Add offline PO parser suite with scrubbed fixture corpus
132 tests: golden-file comparison for all 25 positive fixtures
(17 single-line new-PO + 8 cancellations, Decimal-exact via
parse_float=Decimal), every fail-closed gate reason code covered
(body-level triggers via 17 synthetic adversarial .eml mutations,
candidate-level via direct validate() unit tests), real multi-line
and comment/non-Coupa fallback fixtures, dual line-ending parse
identity, two-path enrich/save parity (site-extractor stream
guard), V10 URL-id corpus sweep, fixture hygiene (ses_auth pass +
scrub-marker leak sweep), and Bedrock dispatch/EMF assertions.

The suite loads handler/template_parser via importlib under
unique module names and binds the handler's bare sibling imports
around exec (tests/conftest.py load_handler gets the same
treatment) -- the WO suite caches bare 'handler'/'template_parser'
names in sys.modules, and bare imports here would silently bind
to the wrong pipeline. moto is imported before the handler so its
botocore stubber hook precedes boto3 session creation (the PO
conftest chain now loads at pytest session start).

Fixtures are scrubbed real S3 samples: transport/auth header
values replaced with same-shape placeholders (structure kept so
ses_auth still passes), per-file digit ciphers, amounts remapped
with sum==total re-established. The .gitignore exception is
scoped to the PO fixtures path only.

Refs: #99
2026-07-16 15:15:49 -04:00

213 lines
11 KiB
Text

Return-Path: <info@seahavenind.com>
Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [203.0.113.25])
by inbound-smtp.us-east-1.amazonaws.com with SMTP id fixture0123456789fixture0123456789fixtur
for amazon_po@int.seahaven.com;
Wed, 17 Jun 2026 20:27:22 +0000 (UTC)
Received-SPF: pass (spfCheck: domain of seahavenind.com designates 203.0.113.25 as permitted sender) client-ip=203.0.113.25; envelope-from=info@seahavenind.com; helo=mail-ej1-f48.google.com;
Authentication-Results: amazonses.com;
spf=pass (spfCheck: domain of seahavenind.com designates 203.0.113.25 as permitted sender) client-ip=203.0.113.25; envelope-from=info@seahavenind.com; helo=mail-ej1-f48.google.com;
dkim=pass header.i=@seahavenind.com;
dmarc=pass header.from=seahavenind.com;
X-SES-RECEIPT: ScrubbedFixturePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedFixturePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedFixturePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedFixturePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedFixturePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedFixturePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedFixturePlaceholderTokenValue0123456789==
X-SES-DKIM-SIGNATURE: a=rsa-sha256; q=dns/txt; b=Scr/ubbedFixtu+r+ePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedFixturePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedFixtur+ePlaceholderTokenValue0123456=; c=relaxed/simple; s=224i4yxa5dv7c2xz3womw6peuasteono; d=amazonses.com; t=1781728043; v=1; bh=Scr+ubbedFixturePlaceholderTokenVa/lue01234=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-Version:Content-Type:X-SES-RECEIPT;
Received: by mail-ej1-f48.google.com with SMTP id fixture012345-6789fixture0123456789f.i
for <amazon_po@int.seahaven.com>; Wed, 17 Jun 2026 13:27:22 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1781728041; cv=none;
d=google.com; s=arc-20240605;
b=ScrubbedFixturePlac+eholderTokenValue0123456789QqZzX/xJjKkWwYyVvSc
rubbedFixturePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbed
FixturePlaceholderTokenValue0123456789QqZzX+xJjKkWwYyVvScrubbedFixtu
rePlaceholderTokenValue/012345+6789QqZzXxJjKkWwYyVvScrubbedFixt/ureP
l/aceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedFixturePlaceh
/+ol==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:dkim-signature;
bh=Scr+ubbedFixturePlaceholderTokenVa/lue01234=;
fh=bOPKxlP53KqicRatNFo+3vDMw9xyp5lQ0wxXEoIGibc=;
b=ScrubbedFixturePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScru
bbedFixtur+ePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedF
ixturePlacehol+derTokenValue0123456789QqZ+z/XxJjKkWwYyVvS+crubb/edFi
xturePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedFixtureP
laceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubbedFixturePlaceho
lder==;
darn=int.seahaven.com
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=seahavenind.com; s=google; t=1781728041; x=1782332841; darn=int.seahaven.com;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:from:to:cc:subject:date:message-id:reply-to;
bh=Scr+ubbedFixturePlaceholderTokenVa/lue01234=;
b=ScrubbedFixturePlaceholderT/okenValue0123456789QqZzXxJ+jKkWwYyVvSc
ru+bbedFixturePl/aceholderToke/nValue0123456789QqZ+zXxJjKkWwYyVv/Scr
ubbedFixturePlace/holderTokenValue012=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20251104; t=1781728041; x=1782332841;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=Scr+ubbedFixturePlaceholderTokenVa/lue01234=;
b=ScrubbedFi+xturePlaceholderTokenValue0123456789+QqZzXxJjKk/WwYyV+v
ScrubbedFixturePlaceholderT/okenValue01234567+/89QqZzXxJjKkWwYyVvSc/
ru+bbedFixturePlaceholderTokenValue0123456789Q/q+/Zz+XxJ/jKkWwYy+V/v
ScrubbedFixturePlaceholderTokenValue0123456789QqZzXxJjKkWwYyVvScrubb
edFixturePlaceholderTokenValue0123456789QqZ+zXxJjKkWwYyVvScrubbedFix
t+ur==
X-Forwarded-Encrypted: i=1; AFNElJ8rNDYhtSAtxiZaBc6QB9IHmCxQA7lKG/cqxrnTHUctUyXv3RrVI6T/wXvCAEigCTqPNJU/e1iuI9U=@int.seahaven.com
X-Gm-Message-State: ScrubbedFixturePlaceholderTokenValue0123456789QqZzXxJjKk
UtxoKxrHTH6n88pNt7AXMyLpjbn5mj7fEgQgzqsFje3EvIAO0JiPX/XfTK6O8qv3kCJeNR6sbAS
FEID004DFZk9ZOSnkGyk9voWoL4hgF1sbJfP9sYAvpMGR
X-Gm-Gg: Acq92OGIEjE/b8GgJyJGpe/TuMH+U2Fad8n/LkOwGeyhLPEogo4Rt7xpSKcutVgMBA0
XHz8bUV4y5gQ9ipmb2P+lCguz9nL28NXmhxYxOScuvJMYcTAErt7FkbIyTj0Q78X1En1kif9tbm
dVvdSoeXVHDFYBNmluqRU8tY2gKY6/Att2bu5rRepTP94UiLJTaI6cKmTiS7AgoYlke+r+i7PJs
dtzWzGue6tgr+g7IRQNAR1CTl+cYixHaz6Cav8gCl5A8Pq00+vtJUu3gNgzUPVgYTur5Se+Xh9u
Y5ToIrSXrxlWz+gs4CI40cA2X3C2GYp2iyjPWu5xkZf9LF4/pAIHGRYK0MT1A++/xtQKyX6d/rZ
LIY4QeBUGOVI=
X-Received: by 2002:a17:907:9617:b0:bed:7f50:c724 with SMTP id
a640c23a62f3a-c05a7daa279mr348804066b.37.1781728041018; Wed, 17 Jun 2026
13:27:21 -0700 (PDT)
MIME-Version: 1.0
References: <user238@DS5PR18MB927692.namprd18.prod.outlook.com>
In-Reply-To: <user238@DS5PR18MB927692.namprd18.prod.outlook.com>
From: Sea Haven Main <info@seahavenind.com>
Date: Wed, 17 Jun 2026 16:27:09 -0400
X-Gm-Features: AVVi8CcN8fGebt_zbpMPtDfBISlz5rWigHccbi_Qr1qzIAn6mGso72IUukfHj6E
Message-ID: <abcdef0123456789abcdef0123456789ab_cdef0123456789+a@mail.gmail.com>
Subject: =?UTF-8?Q?Re=3A_DJZ5_=2D_Request_for_Service_Completion_=E2=80=93_PO_=232D?=
=?UTF-8?Q?=2D14783046?=
To: "Castellan, Sam [C]" <user239@amazon.com>
Cc: "adam@seahavenind.com" <adam@seahavenind.com>,
"amazon_po@int.seahaven.com" <amazon_po@int.seahaven.com>, "O'Donohue, Joe [C]" <user650@amazon.com>,
"Hastrup, Richard" <user172@amazon.com>
Content-Type: multipart/alternative; boundary="000000000000f8b7a4065478e2c5"
--000000000000f8b7a4065478e2c5
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Good Afternoon Sam-
Thank you for your email.
This request was completed back in December of 2025.
I will have our team review this tomorrow, but since it's been six months,
I would imagine the area looks like it was never done specifically due to
the high traffic this site gets.
Daniel
On Wed, Jun 17, 2026 at 4:23=E2=80=AFPM Castellan, Sam [C] <user239@amazon.=
com>
wrote:
> Hello Seahaven Team,
>
>
>
> We are reaching out from DJZ5 regarding PO #2D-19542097, which has alread=
y
> been invoiced under invoice #2947938672. However, the associated work has
> not yet been completed.
>
> Could you please dispatch a technician to perform the outstanding work at
> your earliest convenience?
>
> Thank you, and please let us know if any additional information is needed=
.
>
>
>
>
>
>
>
> Sam Castellan
>
> Regional Area Maintenance Manager
>
> C&W Services | Amazon
>
> C: (326) 245-0632
>
> E: *scastel@amazon.c <user239@amazon.com>om *
>
>
>
--000000000000f8b7a4065478e2c5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Good Afternoon Sam-<div><br>Thank you for your email.</div=
><div><br></div><div>This request was completed=C2=A0back in December of 20=
25.=C2=A0=C2=A0</div><div><br></div><div>I will have our team review this t=
omorrow, but since it&#39;s been six months, I would imagine the area looks=
like it was never done specifically due to the high traffic this site gets=
.</div><div><br></div><div>Daniel</div><div><br></div></div><br><div class=
=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr=
">On Wed, Jun 17, 2026 at 4:23=E2=80=AFPM Castellan, Sam [C] &lt;<a href=3D=
"mailto:user239@amazon.com">user239@amazon.com</a>&gt; wrote:<br></div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left=
:1px solid rgb(204,204,204);padding-left:1ex"><div class=3D"msg639702525558=
0110033">
<div lang=3D"EN-US" style=3D"overflow-wrap: break-word;">
<div class=3D"m_6397025255580110033WordSection1">
<p class=3D"MsoNormal">Hello Seahaven Team, <u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"m_6397025255580110033isselectedend">We are reaching out from DJ=
Z5 regarding PO #2D-19542097, which has already been invoiced under invoice=
#2947938672. However, the associated work has not yet been completed.<u></=
u><u></u></p>
<p class=3D"m_6397025255580110033isselectedend">Could you please dispatch a=
technician to perform the outstanding work at your earliest convenience?<u=
></u><u></u></p>
<p>Thank you, and please let us know if any additional information is neede=
d.<u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal" style=3D"background:white"><span style=3D"font-size:=
10pt;font-family:&quot;Amazon Ember Display&quot;,sans-serif;color:rgb(31,7=
3,125);border:1pt windowtext;padding:0in">Sam Castellan</span><span style=
=3D"font-size:11.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:rgb(=
36,36,36)"><u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"background:white"><span style=3D"font-size:=
10pt;font-family:&quot;Amazon Ember Display&quot;,sans-serif;color:rgb(31,7=
3,125);border:1pt windowtext;padding:0in">Regional Area Maintenance Manager=
</span><span style=3D"font-size:11.5pt;font-family:&quot;Segoe UI&quot;,san=
s-serif;color:rgb(36,36,36)"><u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"background:white"><span style=3D"font-size:=
10pt;font-family:&quot;Amazon Ember Display&quot;,sans-serif;color:rgb(31,7=
3,125);border:1pt windowtext;padding:0in">C&amp;W Services=C2=A0|=C2=A0Amaz=
on</span><span style=3D"font-size:11.5pt;font-family:&quot;Segoe UI&quot;,s=
ans-serif;color:rgb(36,36,36)"><u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"background:white"><span style=3D"font-size:=
10pt;font-family:&quot;Amazon Ember Display&quot;,sans-serif;color:rgb(31,7=
3,125);border:1pt windowtext;padding:0in">C: (326) 245-0632</span><span sty=
le=3D"font-size:11.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:rg=
b(36,36,36)"><u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"background:white"><span style=3D"font-size:=
10pt;font-family:&quot;Amazon Ember Display&quot;,sans-serif;color:rgb(31,7=
3,125);border:1pt windowtext;padding:0in">E:</span><span style=3D"font-size=
:10pt;font-family:&quot;Amazon Ember Display&quot;,sans-serif;color:rgb(68,=
84,106);border:1pt windowtext;padding:0in">=C2=A0</span><u><span style=3D"f=
ont-size:10pt;font-family:&quot;Amazon Ember Display&quot;,sans-serif;color=
:rgb(5,99,193);border:1pt windowtext;padding:0in"><a href=3D"mailto:user239=
@amazon.com" title=3D"mailto:user239@amazon.com" target=3D"_blank"><span st=
yle=3D"color:blue">scastel@amazon.c</span></a>om=C2=A0</span></u><span styl=
e=3D"font-size:11.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:rgb=
(36,36,36)"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
</div></blockquote></div>
--000000000000f8b7a4065478e2c5--