<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:Aptos;}
@font-face
{font-family:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:12.0pt;
font-family:"Aptos",sans-serif;
mso-ligatures:standardcontextual;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#467886;
text-decoration:underline;}
span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Aptos",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Package: finalcif<b><o:p></o:p></b></p>
<p class="MsoNormal">Version: 137+dfsg-2<o:p></o:p></p>
<p class="MsoNormal">Severity: normal<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Dear Maintainer,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I'd like to submit a patch for the finalcif package that fixes a failing test “test_checkcif.TestCheckCifInterface”.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">See the failure in <a href="https://ci.debian.net/packages/f/finalcif/unstable/amd64/59621599/">
https://ci.debian.net/packages/f/finalcif/unstable/amd64/59621599/</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Check the URL in the test case, 'from_index' is one of the form options.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><img border="0" width="791" height="341" style="width:8.2416in;height:3.55in" id="Picture_x0020_1" src="cid:image002.png@01DBAD4F.33FF69C0"></span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Without the fix, the output of case<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">pytest ./tests/test_checkcif.py<o:p></o:p></p>
<p class="MsoNormal">/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:207: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset.<o:p></o:p></p>
<p class="MsoNormal">The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly
in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))<o:p></o:p></p>
<p class="MsoNormal">==================================================== test session starts =====================================================<o:p></o:p></p>
<p class="MsoNormal">platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0<o:p></o:p></p>
<p class="MsoNormal">rootdir: /home/finalcif/finalcif-137+dfsg<o:p></o:p></p>
<p class="MsoNormal">configfile: pyproject.toml<o:p></o:p></p>
<p class="MsoNormal">plugins: cov-5.0.0, asyncio-0.25.1, flaky-3.8.1, typeguard-4.4.2, httpbin-2.1.0, xdist-3.6.1<o:p></o:p></p>
<p class="MsoNormal">asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None<o:p></o:p></p>
<p class="MsoNormal">collected 19 items<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">tests/test_checkcif.py .........Fs........ [100%]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">========================================================== FAILURES ==========================================================<o:p></o:p></p>
<p class="MsoNormal">_________________________________________ TestCheckCifInterface.test_form_field_keys _________________________________________<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">self = <tests.test_checkcif.TestCheckCifInterface testMethod=test_form_field_keys><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> def test_form_field_keys(self):<o:p></o:p></p>
<p class="MsoNormal"> fields = self.form.fields.keys()<o:p></o:p></p>
<p class="MsoNormal"> print("Form fields:", self.form.fields)<o:p></o:p></p>
<p class="MsoNormal"> fields.sort()<o:p></o:p></p>
<p class="MsoNormal">> self.assertEqual(<o:p></o:p></p>
<p class="MsoNormal"> ['Qemailaddress', 'UPLOAD', 'filecif', 'outputtype', 'referer', 'runtype', 'validtype', 'valout'],<o:p></o:p></p>
<p class="MsoNormal"> fields<o:p></o:p></p>
<p class="MsoNormal"> )<o:p></o:p></p>
<p class="MsoNormal">E AssertionError: Lists differ: ['Qem[30 chars]f', 'outputtype', 'referer', 'runtype', 'validtype', 'valout'] != ['Qem[30 chars]f', 'from_index', 'outputtype', 'referer', 'ru[25 chars]out']<o:p></o:p></p>
<p class="MsoNormal">E<o:p></o:p></p>
<p class="MsoNormal">E First differing element 3:<o:p></o:p></p>
<p class="MsoNormal">E 'outputtype'<o:p></o:p></p>
<p class="MsoNormal">E 'from_index'<o:p></o:p></p>
<p class="MsoNormal">E<o:p></o:p></p>
<p class="MsoNormal">E Second list contains 1 additional elements.<o:p></o:p></p>
<p class="MsoNormal">E First extra element 8:<o:p></o:p></p>
<p class="MsoNormal">E 'valout'<o:p></o:p></p>
<p class="MsoNormal">E<o:p></o:p></p>
<p class="MsoNormal">E ['Qemailaddress',<o:p></o:p></p>
<p class="MsoNormal">E 'UPLOAD',<o:p></o:p></p>
<p class="MsoNormal">E 'filecif',<o:p></o:p></p>
<p class="MsoNormal">E + 'from_index',<o:p></o:p></p>
<p class="MsoNormal">E 'outputtype',<o:p></o:p></p>
<p class="MsoNormal">E 'referer',<o:p></o:p></p>
<p class="MsoNormal">E 'runtype',<o:p></o:p></p>
<p class="MsoNormal">E 'validtype',<o:p></o:p></p>
<p class="MsoNormal">E 'valout']<o:p></o:p></p>
<p class="MsoNormal">tests/test_checkcif.py:96: AssertionError<o:p></o:p></p>
<p class="MsoNormal">---------------------------------------------------- Captured stdout call ----------------------------------------------------<o:p></o:p></p>
<p class="MsoNormal">Form fields: ['filecif', 'from_index', 'runtype', 'referer', 'outputtype', 'Qemailaddress', 'validtype', 'valout', 'UPLOAD']<o:p></o:p></p>
<p class="MsoNormal">================================================== short test summary info ===================================================<o:p></o:p></p>
<p class="MsoNormal">FAILED tests/test_checkcif.py::TestCheckCifInterface::test_form_field_keys - AssertionError: Lists differ: ['Qem[30 chars]f', 'outputtype', 'referer', 'runtype', 'validtype', 'valout'] != ['Qem[30 c...<o:p></o:p></p>
<p class="MsoNormal">========================================== 1 failed, 17 passed, 1 skipped in 0.74s ===========================================<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">With the fix:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">pytest ./tests/test_checkcif.py<o:p></o:p></p>
<p class="MsoNormal">/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:207: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset.<o:p></o:p></p>
<p class="MsoNormal">The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly
in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))<o:p></o:p></p>
<p class="MsoNormal">==================================================== test session starts =====================================================<o:p></o:p></p>
<p class="MsoNormal">platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0<o:p></o:p></p>
<p class="MsoNormal">rootdir: /home/finalcif/finalcif-git-test/finalcif-137+dfsg<o:p></o:p></p>
<p class="MsoNormal">configfile: pyproject.toml<o:p></o:p></p>
<p class="MsoNormal">plugins: cov-5.0.0, asyncio-0.25.1, flaky-3.8.1, typeguard-4.4.2, httpbin-2.1.0, xdist-3.6.1<o:p></o:p></p>
<p class="MsoNormal">asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None<o:p></o:p></p>
<p class="MsoNormal">collected 20 items<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">tests/test_checkcif.py ...........s........ [100%]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">=============================================== 19 passed, 1 skipped in 0.74s ================================================<o:p></o:p></p>
<p class="MsoNormal">root@debian-dev-rfu:/home/finalcif/finalcif-git-test/finalcif-137+dfsg#<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thank you for considering this patch attached<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Rong Fu<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>