import urllib.error
import urllib.request
import unittest

URL = 'https://howdoyouconvert.com/apothecary-ounces-to-amu'


class ApothecaryPageTests(unittest.TestCase):
    def test_apothecary_page_returns_success(self) -> None:
        """The published URL should return a 200 so the calculator page stays healthy."""
        request = urllib.request.Request(
            URL,
            headers={
                'User-Agent': 'Mozilla/5.0',
                'Accept': 'text/html,application/xhtml+xml',
            },
        )

        try:
            with urllib.request.urlopen(request, timeout=15) as response:
                status = response.getcode()
        except urllib.error.HTTPError as exc:
            self.fail(f'{URL} returned HTTP {exc.code} ({exc.reason})')
        except urllib.error.URLError as exc:
            self.fail(f'{URL} could not be fetched: {exc}')

        self.assertEqual(status, 200, f'{URL} returned {status}')
