Example #1
0
import json
from datetime import datetime
from tests.utils import read_test_file_content
from city_scrapers.pipelines import CsvPipeline
from city_scrapers.spiders.chi_buildings import ChiBuildingsSpider

testSpider = ChiBuildingsSpider()


def _str_to_datetime(date_string, spider_in=testSpider):
    if not date_string:
        return testSpider
    naive = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
    return spider_in._naive_datetime_to_tz(naive)


def load_valid_item():
    fixtures = json.loads(
        read_test_file_content('files/exporter_fixture.json'))
    valid_item = fixtures[0]
    valid_item['start_time'] = _str_to_datetime(valid_item['start_time'])
    valid_item['end_time'] = _str_to_datetime(valid_item['end_time'])
    return valid_item


valid_item = load_valid_item()
pipeline = CsvPipeline()
pipeline.spider_opened(testSpider)


def test_valid_process_item():
Example #2
0
import pytest
import scrapy

from datetime import datetime
from tests.utils import file_response

from city_scrapers.constants import BOARD, COMMITTEE
from city_scrapers.spiders.chi_buildings import ChiBuildingsSpider

test_json_response = file_response('files/chi_buildings.json')
test_event_response = file_response('files/chi_buildings.html')
spider = ChiBuildingsSpider()
# Setting spider date to time test files were generated
spider.calendar_date = datetime(2018, 2, 18)


class MockRequest(object):
    meta = {}

    def __getitem__(self, key):
        return self.meta['item'].get(key)


def mock_request(*args, **kwargs):
    mock = MockRequest()
    mock.meta = {'item': {}}
    return mock


@pytest.fixture()
def parsed_items(monkeypatch):