def test_get_trainings( self, mock_requests: 'requests_mock._RequestObjectProxy') -> None: """Basic usage of get_trainings.""" mock_requests.get( 'https://ws.intercariforef.org/serviceweb2/offre-info/?' 'idsMetiers=G1201&code-departement=75', text=self._carif_xml_response) trainings = carif.get_trainings('G1201', '75') self.assertEqual([ "Titre professionnel d'accompagnateur(trice) de tourisme", 'Licence arts, lettres, langues mention langues, littérature et ' 'civilisations étrangères et régionales', 'Licence arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours allemand', 'Licence arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours arabe', 'Licence arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours espagnol', 'Licence arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours études nordiques', 'Licence arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours italien', 'Licences arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours néerlandais', 'Licence arts, lettres, langues mention langues étrangères appliquées', ], [t.name for t in trainings]) self.assertEqual('Paris 17e Arrondissement', trainings[7].city_name) self.assertEqual('http://www.intercariforef.org/', trainings[7].url) self.assertEqual(['14201', '14270', '15254'], trainings[7].formacodes)
def get_trainings(self) -> List[training_pb2.Training]: """Get the training opportunities from our partner's API.""" if self._trainings is not None: return self._trainings self._trainings = carif.get_trainings( self.details.target_job.job_group.rome_id, self.details.city.departement_id) return self._trainings
def test_empty_response(self, mock_get: mock.MagicMock) -> None: """Missing text when calling InterCarif.""" mock_get().text = '' mock_get().status_code = 200 mock_get.reset_mock() trainings = carif.get_trainings('G1201', '75') self.assertEqual([], trainings)
def test_error_code(self, mock_get: mock.MagicMock) -> None: """Error 500 on InterCarif.""" mock_get().text = self._carif_xml_response mock_get().status_code = 500 mock_get.reset_mock() trainings = carif.get_trainings('G1201', '75') self.assertEqual([], trainings)
def test_empty_response(self, mock_requests: 'requests_mock.Mocker') -> None: """Missing text when calling InterCarif.""" mock_requests.get( 'https://ws.intercariforef.org/serviceweb2/offre-info/?' 'idsMetiers=G1201&code-departement=75', text='') trainings = carif.get_trainings('G1201', '75') self.assertEqual([], trainings)
def test_error_code(self, mock_requests: 'requests_mock.Mocker') -> None: """Error 500 on InterCarif.""" mock_requests.get( 'https://ws.intercariforef.org/serviceweb2/offre-info/?' 'idsMetiers=G1201&code-departement=75', status_code=500, text=self._carif_xml_response) trainings = carif.get_trainings('G1201', '75') self.assertEqual([], trainings)
def test_no_offers(self, mock_requests: 'requests_mock.Mocker') -> None: """Missing content when calling InterCarif.""" mock_requests.get( 'https://ws.intercariforef.org/serviceweb2/offre-info/?' 'idsMetiers=G1201&code-departement=75', text= '<lheo-index xmlns="http://www.lheo.org/2.2"><resumes-offres /></lheo-index>' ) trainings = carif.get_trainings('G1201', '75') self.assertEqual([], trainings)
def get_trainings(self) -> list[training_pb2.Training]: """Get the training opportunities from our partner's API.""" if self._trainings is not None: return self._trainings if _BOB_DEPLOYMENT == 'uk': all_trainings = _TRAININGS.get_collection(self._db) self._trainings = list( filter_using_score(all_trainings, lambda t: t.filters, self)) else: self._trainings = carif.get_trainings( self.details.target_job.job_group.rome_id, self.details.city.departement_id) return self._trainings
def test_one_training(self, mock_get: mock.MagicMock) -> None: """Get Carif training when there's only one available.""" with open( path.join(path.dirname(__file__), 'testdata/carif_single_offer.xml')) as carif_file: mock_get().text = carif_file.read() mock_get().status_code = 200 mock_get.reset_mock() trainings = carif.get_trainings('G1201', '75') mock_get.assert_called_once() self.assertEqual(['CQP plongeur - officier de cuisine'], [t.name for t in trainings]) self.assertEqual('Boulogne-Billancourt', trainings[0].city_name) self.assertEqual('http://www.intercariforef.org', trainings[0].url) self.assertEqual(['42780'], trainings[0].formacodes)
def test_incomplete_offer(self, mock_requests: 'requests_mock.Mocker') -> None: """Missing content in an offer when calling InterCarif.""" mock_requests.get( 'https://ws.intercariforef.org/serviceweb2/offre-info/?' 'idsMetiers=G1201&code-departement=75', text='''<lheo-index xmlns="http://www.lheo.org/2.2"> <resumes-offres> <resume-offre numero="14_AF_0000011179_SE_0000093700" file="http://www.intercariforef.org/"> <domaine-formation> </domaine-formation> </resume-offre> </resumes-offres> </lheo-index>''') trainings = carif.get_trainings('G1201', '75') self.assertEqual([], trainings)
def test_one_training(self, mock_requests: 'requests_mock.Mocker') -> None: """Get Carif training when there's only one available.""" carif_file_name = path.join(path.dirname(__file__), 'testdata/carif_single_offer.xml') with open(carif_file_name, encoding='utf-8') as carif_file: response_text = carif_file.read() mock_requests.get( 'https://ws.intercariforef.org/serviceweb2/offre-info/?' 'idsMetiers=G1201&code-departement=75', text=response_text) trainings = carif.get_trainings('G1201', '75') self.assertEqual(['CQP plongeur - officier de cuisine'], [t.name for t in trainings]) self.assertEqual('Boulogne-Billancourt', trainings[0].city_name) self.assertEqual('http://www.intercariforef.org', trainings[0].url) self.assertEqual(['42780'], trainings[0].formacodes)
def test_get_trainings(self, mock_get: mock.MagicMock) -> None: """Basic usage of get_trainings.""" mock_get().text = self._carif_xml_response mock_get().status_code = 200 mock_get.reset_mock() trainings = carif.get_trainings('G1201', '75') mock_get.assert_called_once() args, kwargs = mock_get.call_args self.assertEqual(1, len(args)) self.assertRegex(args[0], r'^http://www.intercariforef.org/') self.assertEqual({'params'}, set(kwargs)) self.assertEqual({ 'idsMetiers': 'G1201', 'code-departement': '75' }, kwargs['params']) self.assertEqual([ "Titre professionnel d'accompagnateur(trice) de tourisme", 'Licence arts, lettres, langues mention langues, littérature et ' 'civilisations étrangères et régionales', 'Licence arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours allemand', 'Licence arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours arabe', 'Licence arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours espagnol', 'Licence arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours études nordiques', 'Licence arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours italien', 'Licences arts, lettres, langues mention langues, littératures ' 'et civilisations étrangères et régionales parcours néerlandais', 'Licence arts, lettres, langues mention langues étrangères appliquées', ], [t.name for t in trainings]) self.assertEqual('Paris 17e Arrondissement', trainings[7].city_name) self.assertEqual('http://www.intercariforef.org/', trainings[7].url) self.assertEqual(['14201', '14270', '15254'], trainings[7].formacodes)