<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
  <testsuite name="pytest" errors="1" failures="1" skipped="1" tests="12" time="7.450" timestamp="2026-08-07T09:14:22.031918" hostname="ci-runner-04">
    <testcase classname="tests.cart.test_pricing" name="test_applies_unit_price" time="0.643" file="tests/cart/test_pricing.py" line="18"/>
    <testcase classname="tests.cart.test_pricing" name="test_applies_quantity_multiplier" time="0.659" file="tests/cart/test_pricing.py" line="25"/>
    <testcase classname="tests.cart.test_pricing" name="test_rounds_half_up_at_two_decimals" time="1.042" file="tests/cart/test_pricing.py" line="32"/>
    <testcase classname="tests.cart.test_pricing" name="test_rejects_negative_quantity" time="1.048" file="tests/cart/test_pricing.py" line="39"/>
    <testcase classname="tests.cart.test_pricing" name="test_applies_tax_to_subtotal" time="0.352" file="tests/cart/test_pricing.py" line="46">
      <failure message="expected:&lt;12.60&gt; but was:&lt;12.59&gt;" type="java.lang.AssertionError"><![CDATA[java.lang.AssertionError: expected:<12.60> but was:<12.59>
	at cart.PricingTest.appliesTaxToSubtotal(PricingTest.java:88)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
]]></failure>
    </testcase>
    <testcase classname="tests.cart.test_discounts" name="test_applies_percentage_discount" time="0.147" file="tests/cart/test_discounts.py" line="53"/>
    <testcase classname="tests.cart.test_discounts" name="test_stacks_discounts_in_declared_order" time="0.327" file="tests/cart/test_discounts.py" line="60"/>
    <testcase classname="tests.cart.test_discounts" name="test_ignores_expired_coupon" time="0.893" file="tests/cart/test_discounts.py" line="67"/>
    <testcase classname="tests.cart.test_discounts" name="test_applies_loyalty_tier" time="0.700" file="tests/cart/test_discounts.py" line="74">
      <skipped message="loyalty tiers are disabled in the CI profile"/>
    </testcase>
    <testcase classname="tests.checkout.test_session" name="test_creates_session_for_new_cart" time="0.783" file="tests/checkout/test_session.py" line="81"/>
    <testcase classname="tests.checkout.test_session" name="test_expires_session_after_timeout" time="0.695" file="tests/checkout/test_session.py" line="88">
      <error message="Connection refused: sessions.example.com:5432" type="java.net.ConnectException"><![CDATA[java.net.ConnectException: Connection refused: sessions.example.com:5432
	at checkout.SessionStore.open(SessionStore.java:41)
	at checkout.SessionTest.expiresSessionAfterTimeout(SessionTest.java:57)
]]></error>
    </testcase>
    <testcase classname="tests.checkout.test_session" name="test_restores_cart_on_resume" time="0.161" file="tests/checkout/test_session.py" line="95"/>
  </testsuite>
</testsuites>
