class HamQTHClientNotAuthenticatedTestCase(TestCase):
    def setUp(self):
        self.client = HamQTHClient()

    def test_is_authenticated_is_false(self):
        self.assertFalse(self.client.is_authenticated)

    def test_search_callsign_raises_error(self):
        with self.assertRaises(HamQTHClientError):
            self.client.search_callsign('abc123')

    def test_search_callsign_bio_raises_error(self):
        with self.assertRaises(HamQTHClientError):
            self.client.search_callsign_bio('abc123')

    def test_search_callsign_recent_activity_raises_error(self):
        with self.assertRaises(HamQTHClientError):
            self.client.search_callsign_recent_activity('abc123')
class HamQTHClientSearchCallsignBioTestCase(TestCase):
    def setUp(self):
        self.client = HamQTHClient(
            session_id='09b0ae90050be03c452ad235a1f2915ad684393c')

    def test_search_callsign_bio(self):
        query = 'ok2cqr'
        with patch.object(
                HamQTHClient, 'request',
                return_value=SearchCallsignBioResponse()) as mock_method:
            self.client.search_callsign_bio(query)
        mock_method.assert_called_once_with(
            'https://www.hamqth.com/xml.php',
            payload={
                'id': '09b0ae90050be03c452ad235a1f2915ad684393c',
                'callsign': 'ok2cqr',
                'strip_html': 1
            })

    def test_search_callsign_bio_strip_html(self):
        query = 'ok2cqr'
        with patch.object(
                HamQTHClient, 'request',
                return_value=SearchCallsignBioResponse()) as mock_method:
            self.client.search_callsign_bio(query, strip_html=False)
        mock_method.assert_called_once_with(
            'https://www.hamqth.com/xml.php',
            payload={
                'id': '09b0ae90050be03c452ad235a1f2915ad684393c',
                'callsign': 'ok2cqr',
                'strip_html': 0
            })

    def test_search_callsign_bio_not_found(self):
        query = 'ok2cqr'
        with patch.object(HamQTHClient,
                          'request',
                          return_value=SearchCallsignBioNotFoundResponse()
                          ) as mock_method:
            with self.assertRaises(HamQTHClientNotFoundError):
                self.client.search_callsign_bio(query)
        mock_method.assert_called_once_with(
            'https://www.hamqth.com/xml.php',
            payload={
                'id': '09b0ae90050be03c452ad235a1f2915ad684393c',
                'callsign': 'ok2cqr',
                'strip_html': 1
            })