diff --git a/modules/cci/backend.py b/modules/cci/backend.py index eed5ed64..4fd5d094 100644 --- a/modules/cci/backend.py +++ b/modules/cci/backend.py @@ -38,10 +38,9 @@ class CciBackend(BaseBackend, ICapJob): BROWSER = CciBrowser def search_job(self, pattern=None): - if not pattern: - with self.browser: - for job_advert in self.browser.search_job(): - yield job_advert + with self.browser: + for job_advert in self.browser.search_job(pattern): + yield job_advert def advanced_search_job(self): return [] diff --git a/modules/cci/browser.py b/modules/cci/browser.py index 054b2d7f..79f34a30 100644 --- a/modules/cci/browser.py +++ b/modules/cci/browser.py @@ -35,10 +35,10 @@ class CciBrowser(BaseBrowser): '%s://%s' % (PROTOCOL, DOMAIN): SearchPage, } - def search_job(self): + def search_job(self, pattern): self.location('%s://%s' % (self.PROTOCOL, self.DOMAIN)) assert self.is_on_page(SearchPage) - return self.page.iter_job_adverts() + return self.page.iter_job_adverts(pattern) def get_job_advert(self, _id, advert): self.location('%s://%s' % (self.PROTOCOL, self.DOMAIN)) diff --git a/modules/cci/pages.py b/modules/cci/pages.py index 2665b02f..fb067d0b 100644 --- a/modules/cci/pages.py +++ b/modules/cci/pages.py @@ -26,7 +26,7 @@ __all__ = ['SearchPage'] class SearchPage(BasePage): - def iter_job_adverts(self): + def iter_job_adverts(self, pattern): trs = self.document.getroot().xpath("//tr[@class='texteCol2TableauClair']") \ + self.document.getroot().xpath("//tr[@class='texteCol2TableauFonce']") @@ -38,7 +38,11 @@ class SearchPage(BasePage): advert.society_name = u'CCI %s' % tds[3].text advert.place = u'%s' % tds[0].text advert.job_name = u'%s' % tds[1].text - yield advert + if pattern is not None: + if pattern in advert.title or pattern in advert.job_name: + yield advert + else: + yield advert def get_job_advert(self, _id, advert): if advert is None: diff --git a/modules/cci/test.py b/modules/cci/test.py index 5509fdaa..806bc6e7 100644 --- a/modules/cci/test.py +++ b/modules/cci/test.py @@ -29,4 +29,3 @@ class CciTest(BackendTest): assert len(l) advert = self.backend.get_job_advert(l[0].id, None) self.assertTrue(advert.url, 'URL for announce "%s" not found: %s' % (advert.id, advert.url)) -