예제 #1
0
def test_search_tags_full_match(client):
    with app.app_context():
        company = Company.get_from_name(db.session, 'en', 'Wantedlab')
        tags = company.get_tags(db.session)

    tag_ids = list(map(lambda x: str(x.id), tags))
    tag_ids_param = ','.join(tag_ids)

    rsp = client.get('/searches/companies/tag/',
                     query_string={'tags': tag_ids_param})
    assert rsp.status_code == 200
    assert rsp.json['companies'][0] == {'id': company.id, 'name': '원티드랩'}
예제 #2
0
def test_search_tag_partial_match(client):
    with app.app_context():
        company = Company.get_from_name(db.session, 'en', 'Wantedlab')
        tags = company.get_tags(db.session)[:1]

    tag_ids = list(map(lambda x: str(x.id), tags))
    tag_ids_param = ','.join(tag_ids)

    rsp = client.get('/searches/companies/tag/',
                     query_string={'tags': tag_ids_param})
    assert rsp.status_code == 200
    assert len(rsp.json['companies']) == 5
    filter_obj = filter(lambda x: x['id'] == company.id, rsp.json['companies'])
    assert len(list(filter_obj)) == 1
예제 #3
0
def test_delete_company_tags(client):

    with app.app_context():
        company = Company.get_from_name(db.session, 'en', 'Wantedlab')
        tags = company.get_tags(db.session)[1:]

    rsp = client.delete(f'/companies/{company.id}/tags/',
                        query_string={'tags': f'{tags[0].id}'})
    assert rsp.status_code == 200

    with app.app_context():
        company_tags = company.get_tags(db.session)

    company_tag_ids = set(map(lambda x: x.id, company_tags))
    assert not set([tags[0].id]).issubset(company_tag_ids)
예제 #4
0
def test_add_company_tags(client):

    with app.app_context():
        company = Company.get_from_name(db.session, 'en', 'Wantedlab')
        tag_29 = Tag.get_from_name(db.session, 'en', 'tag_29')
        tag_30 = Tag.get_from_name(db.session, 'en', 'tag_30')

    body = {'tags': [{'id': tag_29.id}, {'id': tag_30.id}]}
    rsp = client.post(f'/companies/{company.id}/tags/', json=body)
    assert rsp.status_code == 200

    with app.app_context():
        company_tags = company.get_tags(db.session)

    company_tag_ids = set(map(lambda x: x.id, company_tags))
    assert set([tag_29.id, tag_30.id]).issubset(company_tag_ids)

    # 중복 태그 생성 요청
    rsp = client.post(f'/companies/{company.id}/tags/', json=body)
    assert rsp.status_code == 403