def test_get_cs_form_id_invalid_survey(self):
        survey = {'survey_id': 23}
        response = {'collection': {'instrument_id': '0102'}}
        pck_transformer = PCKTransformer(survey, response)

        with self.assertLogs(level='ERROR') as cm:
            form_id = pck_transformer.get_cs_form_id()
            self.assertEqual(form_id, None)
            self.assertIn('Invalid survey id', cm.output[0])
    def test_get_cs_form_id_invalid_instrument(self):
        survey = {'survey_id': '023'}
        response = {'collection': {'instrument_id': '000'}}
        pck_transformer = PCKTransformer(survey, response)

        with self.assertLogs(level='ERROR') as cm:
            form_id = pck_transformer.get_cs_form_id()
            self.assertEqual(form_id, None)
            self.assertIn('Invalid instrument id', cm.output[0])

        # QCAS
        survey = {'survey_id': '019'}
        response = {'collection': {'instrument_id': '0021'}}
        pck_transformer = PCKTransformer(survey, response)

        with self.assertLogs(level='ERROR') as cm:
            form_id = pck_transformer.get_cs_form_id()
            self.assertEqual(form_id, None)
            self.assertIn("Invalid instrument id", cm.output[0])
    def test_get_cs_form_id_invalid_survey(self):
        survey = {'survey_id': 23}
        response = {'collection': {'instrument_id': '0102'}}
        pck_transformer = PCKTransformer(survey, response)

        with self.assertLogs(level='ERROR') as cm:
            form_id = pck_transformer.get_cs_form_id()
            self.assertEqual(form_id, None)

            msg = "ERROR:transform.transformers.common_software.pck_transformer:survey_id=23 event='Invalid survey id'"
            self.assertEqual(msg, cm.output[0])
    def test_get_cs_form_id_passes(self):
        scenarios = [
            ('023', '0102', 'RSI5B'),
            ('139', '0001', 'Q01B'),
            ('019', '0018', '0018'),
            ('019', '0019', '0019'),
            ('019', '0020', '0020')
        ]
        for survey_id, instrument_id, expected_form_id in scenarios:
            survey = {'survey_id': survey_id}
            response = {'collection': {'instrument_id': instrument_id}}
            pck_transformer = PCKTransformer(survey, response)
            form_id = pck_transformer.get_cs_form_id()

            assert form_id == expected_form_id
    def test_get_cs_form_id_passes(self):
        scenarios = [
            ('023', '0102', 'RSI5B'),
            ('139', '0001', 'Q01B'),
            ('019', '0018', '0018'),
            ('019', '0019', '0019'),
            ('019', '0020', '0020')
        ]
        for survey_id, instrument_id, expected_form_id in scenarios:
            survey = {'survey_id': survey_id}
            response = {'collection': {'instrument_id': instrument_id}}
            pck_transformer = PCKTransformer(survey, response)
            form_id = pck_transformer.get_cs_form_id()

            assert form_id == expected_form_id