Example #1
0
    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)
Example #2
0
    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
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
    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
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
    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)
Example #12
0
    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)