Esempio n. 1
0
    def test_find_all(self):
        self.job_item.save()
        another_job_item = JobItem()
        another_job_item.job_title = 'Another Test Job'
        another_job_item.save()

        records = JobItem.findall()
        print 'Job Items', records
        self.assertEqual(2, len(records))
Esempio n. 2
0
    def test_find_with_pagination(self):
        for i in range(0, 20):
            job_item = JobItem()
            job_item.job_title='job_item_%d' % i
            job_item.save()

        records = JobItem.find_with_pagination(page_request={'page_no': 2, 'size': 10})

        print 'Job Items', records
        self.assertEqual(10, len(records))
Esempio n. 3
0
 def setUp(self):
     self.clean_db()
     self.job_item = JobItem()
     self.job_item.job_title="Test Job"
     self.job_item.employer_name="Test Job Employer"
     # self.job_item.crawled_date = datetime.datetime.now()
     # self.job_item.publish_date = datetime.datetime.strptime('2014-10-31', '%Y-%m-%d')
     self.job_item.job_country = "Singapore"
     self.job_item.job_desc = "This is a test job"
     self.job_item.contact = "88888888"
     self.source = 'unit_test'
Esempio n. 4
0
    def parse_item_requests_callback(self, response, item_xpath_selector=''):
        requests = []
        for job_item in response.xpath(item_xpath_selector):

            job_crawler_item = JobItem()
            self.populate_job_crawler_item(job_item, job_crawler_item)

            if self.should_load_details(job_crawler_item):
                requests.append(
                    Request(url=job_crawler_item.job_details_link,
                            callback=self.retrieve_job_details,
                            meta={'item': job_crawler_item},
                            dont_filter=True))

        return requests
Esempio n. 5
0
    def parse_item(self, response):
        requests = []
        for job_item in response.xpath('//tr'):
            job_crawler_item = JobItem()
            for index, detail_item in enumerate(job_item.xpath('./td')):
                self.populate_job_crawler_item(index, detail_item,
                                               job_crawler_item)
                if index == 4:
                    if self.should_load_details(job_crawler_item):
                        requests.append(
                            Request(url=job_crawler_item.job_details_link,
                                    callback=self.retrieve_job_details,
                                    meta={'item': job_crawler_item},
                                    dont_filter=True))

        return requests
Esempio n. 6
0
    def test_remove_records_matches_rejection_pattern(self):
        for i in range(0, 20):
            job_item = JobItem()
            job_item.job_title=u'人员_%d' % i
            job_item.save()

        # mark the title as blocked
        RejectionPattern(u'人员_\d+', 'For Testing').save()

        # run the remove action
        JobItem.remove_records_matches_rejection_pattern()

        conn = self.connect_db()
        try:
            c = conn.cursor()
            c.execute('SELECT COUNT(*) FROM ' + JobItem.table_name)
            self.assertEqual(c.fetchone()[0], 0, 'Count of job items should be 0')
        except:
            pass
        finally:
            conn.close()
Esempio n. 7
0
    def test_remove_blocked_records(self):
        for i in range(0, 20):
            job_item = JobItem()
            job_item.job_title=u'人员_%d' % i
            job_item.contact = str(random.randint(90000000, 99999999))
            job_item.save()

            # mark the contact as blocked
            BlockedContact(job_item.contact, u'人员').save()

        # run the remove action
        JobItem.remove_blocked_records()

        conn = self.connect_db()
        try:
            c = conn.cursor()
            c.execute('SELECT COUNT(*) FROM ' + JobItem.table_name)
            self.assertEqual(c.fetchone()[0], 0, 'Count of job items should be 0')
        except:
            pass
        finally:
            conn.close()