def search_gists(db_connection, **kwargs): query = ''' SELECT * FROM gists ''' for kwarg, value in kwargs.items(): if isinstance(value, datetime): query = query + 'WHERE datetime({}) == datetime(:{})'.format(kwarg, kwarg) else: query = query + 'WHERE {} = :{}'.format(kwarg, value) cursor = db_connection.execute(query, kwargs) results = [Gist(gist) for gist in cursor] return results
def search_gists(db_connection, **kwargs): """ Takes a db_connection parameter (the database connection), as well as a variable number of keyword arguments to use in the search. Returns an iterator that pumps out Gist objects with all the appropriate data filled in. """ criteria_dict = get_criteria_dict(kwargs) query = get_query(criteria_dict, kwargs) cursor = db_connection.execute(query, kwargs) for row in cursor: yield Gist(row)
def search_gists(db_connection, **kwargs): db_connection.row_factory = sqlite3.Row query, params = build_query(**kwargs) results = db_connection.execute(query, params) for gist in results: yield Gist(gist)
def test_gist_model_str(clean_gists_database): model = Gist(GIST_DATA) assert str(model) == 'Gist: 18bdf248a679155f1381'
def test_gist_model_create_invalid_params(clean_gists_database): with pytest.raises(KeyError): Gist({'this-is': 'invalid'})
def test_gist_model_create(clean_gists_database): model = Gist(GIST_DATA) assert model.github_id == '18bdf248a679155f1381' assert model.html_url == 'https://gist.github.com/18bdf248a679155f1381' assert model.created_at == '2014-05-03T20:26:08Z'