예제 #1
0
def test_find_filtered_venues_with_default_param_return_all_venues(app):
    # Given
    offerer = create_offerer()

    venue_with_valid_offer = create_venue(offerer)
    venue_without_offer = create_venue(offerer, siret='12345678912346')
    venue_with_expired_offer = create_venue(offerer, siret='12345678912347')
    venue_virtual = create_venue(offerer, is_virtual=True, siret=None)

    venue_without_siret = create_venue(offerer, siret=None, comment="comment")
    venue_93000 = create_venue(offerer, postal_code='93000', siret='12345678912348')
    venue_67000 = create_venue(offerer, postal_code='67000', siret='12345678912349')
    venue_34000 = create_venue(offerer, postal_code='34000', siret='12345678912350')
    venue_97000 = create_venue(offerer, postal_code='97000', siret='12345678912351')

    valid_offer = create_offer_with_event_product(venue_with_valid_offer)
    expired_offer = create_offer_with_event_product(venue_with_expired_offer)

    PcObject.save(venue_with_valid_offer, venue_without_offer,
                  venue_virtual, venue_97000, venue_without_siret, venue_93000,
                  venue_67000, venue_34000)

    # When
    default_query = find_filtered_venues()

    # Then
    assert venue_with_valid_offer in default_query
    assert venue_without_offer in default_query
    assert venue_virtual in default_query
    assert venue_97000 in default_query
    assert venue_without_siret in default_query
    assert venue_93000 in default_query
    assert venue_67000 in default_query
    assert venue_34000 in default_query
예제 #2
0
def test_find_filtered_venues_with_False_has_validated_user_param_return_filtered_venues(app):
    # Given
    validated_user = create_user()
    not_validated_user1 = create_user(email="*****@*****.**", validation_token="hello token")
    not_validated_user2 = create_user(email="*****@*****.**", validation_token="other token")
    offerer1 = create_offerer()
    offerer2 = create_offerer(siren="123456781")
    offerer3 = create_offerer(siren="123456782")
    user_offerer1 = create_user_offerer(validated_user, offerer1)
    user_offerer2 = create_user_offerer(not_validated_user1, offerer2)
    user_offerer3 = create_user_offerer(validated_user, offerer3)
    user_offerer4 = create_user_offerer(not_validated_user2, offerer3)

    venue_with_validated_user = create_venue(offerer1)
    venue_with_not_validated_user = create_venue(offerer2, siret='12345678912346')
    venue_with_both = create_venue(offerer3, siret='12345678912347')

    PcObject.save(user_offerer1, user_offerer2, user_offerer3, user_offerer4, venue_with_not_validated_user,
                  venue_with_validated_user, venue_with_both)

    # When
    query_not_validated = find_filtered_venues(has_validated_user=False)

    # Then
    assert venue_with_not_validated_user in query_not_validated
    assert venue_with_validated_user not in query_not_validated
    assert venue_with_both not in query_not_validated
예제 #3
0
def test_find_filtered_venues_with_sirens_params_return_filtered_venues(app):
    # given
    offerer_123456789 = create_offerer(name="offerer_123456789", siren="123456789")
    offerer_123456781 = create_offerer(name="offerer_123456781", siren="123456781")
    offerer_123456782 = create_offerer(name="offerer_123456782", siren="123456782")
    offerer_123456783 = create_offerer(name="offerer_123456783", siren="123456783")
    offerer_123456784 = create_offerer(name="offerer_123456784", siren="123456784")

    venue_123456789 = create_venue(offerer_123456789, name="venue_123456789", siret="12345678912345")
    venue_123456781 = create_venue(offerer_123456781, name="venue_123456781", siret="12345678112345")
    venue_123456782 = create_venue(offerer_123456782, name="venue_123456782", siret="12345678212345")
    venue_123456783 = create_venue(offerer_123456783, name="venue_123456783", siret="12345678312345")
    venue_123456784 = create_venue(offerer_123456784, name="venue_123456784", siret="12345678412345")

    PcObject.save(venue_123456789, venue_123456781, venue_123456782, venue_123456783, venue_123456784)

    # when
    query_with_sirens = find_filtered_venues(sirens=["123456781", "123456782", "123456783"])

    # then
    assert venue_123456789 not in query_with_sirens
    assert venue_123456781 in query_with_sirens
    assert venue_123456782 in query_with_sirens
    assert venue_123456783 in query_with_sirens
    assert venue_123456784 not in query_with_sirens
예제 #4
0
def test_find_filtered_venues_with_False_has_validated_user_offerer_param_return_filtered_venues(app):
    # Given
    user = create_user()
    user2 = create_user(email="*****@*****.**")
    offerer1 = create_offerer()
    offerer2 = create_offerer(siren="123456781")
    offerer3 = create_offerer(siren="123456782")

    validated_user_offerer = create_user_offerer(user, offerer1)
    not_validated_user_offerer = create_user_offerer(user, offerer2, validation_token="a_token")
    user_offerer_for_both1 = create_user_offerer(user, offerer3)
    user_offerer_for_both2 = create_user_offerer(user2, offerer3, validation_token="other_token")

    venue_with_validated_user_offerer = create_venue(offerer1, siret='12345678912346')
    venue_with_not_validated_user_offerer = create_venue(offerer2, siret='12345678912347')
    venue_with_both = create_venue(offerer3)

    PcObject.save(validated_user_offerer, not_validated_user_offerer,
                  user_offerer_for_both1, user_offerer_for_both2, venue_with_not_validated_user_offerer,
                  venue_with_validated_user_offerer, venue_with_both)

    # When
    query_not_validated = find_filtered_venues(has_validated_user_offerer=False)

    # Then
    assert venue_with_not_validated_user_offerer in query_not_validated
    assert venue_with_validated_user_offerer not in query_not_validated
    assert venue_with_both not in query_not_validated
예제 #5
0
def get_export_venues():
    check_user_is_admin(current_user)

    params_keys = [
        'sirens', 'dpts', 'has_validated_offerer', 'zip_codes', 'from_date',
        'to_date', 'has_siret', 'is_virtual', 'offer_status', 'is_validated',
        "has_offerer_with_siren", "has_validated_user_offerer",
        "has_validated_user"
    ]
    params = {}

    for key in params_keys:
        params[key] = request.json.get(key, None)

    check_get_venues_params(params)
    venues = find_filtered_venues(
        sirens=params['sirens'],
        dpts=params['dpts'],
        zip_codes=params['zip_codes'],
        from_date=params['from_date'],
        to_date=params['to_date'],
        has_siret=params['has_siret'],
        is_virtual=params['is_virtual'],
        offer_status=params['offer_status'],
        is_validated=params['is_validated'],
        has_validated_offerer=params['has_validated_offerer'],
        has_offerer_with_siren=params['has_offerer_with_siren'],
        has_validated_user_offerer=params['has_validated_user_offerer'],
        has_validated_user=params['has_validated_user'])

    return jsonify([as_dict(venue) for venue in venues]), 200
예제 #6
0
def test_find_filtered_venues_with_is_validated_param_return_filtered_venues(app):
    # Given
    offerer = create_offerer()
    venue_not_validated = create_venue(offerer, validation_token="there is a token here")
    venue_validated = create_venue(offerer, siret='12345678912346')
    PcObject.save(venue_not_validated, venue_validated)

    # When
    query_only_validated = find_filtered_venues(is_validated=True)

    # Then
    assert venue_not_validated not in query_only_validated
    assert venue_validated in query_only_validated
예제 #7
0
def test_find_filtered_venues_with_is_virtual_param_return_filtered_venues(app):
    # Given
    offerer = create_offerer()
    venue_virtual = create_venue(offerer, is_virtual=True, siret=None)
    venue_not_virtual = create_venue(offerer, is_virtual=False, postal_code='34000')
    PcObject.save(venue_virtual, venue_not_virtual)

    # When
    query_only_virtual = find_filtered_venues(is_virtual=True)

    # Then
    assert venue_virtual in query_only_virtual
    assert venue_not_virtual not in query_only_virtual
예제 #8
0
def test_find_filtered_venues_with_has_validated_offerer_param_return_filtered_venues(app):
    # Given
    offerer_valid = create_offerer()
    offerer_not_valid = create_offerer(siren='123456798', validation_token='abc')
    venue_with_offerer_valid = create_venue(offerer_valid)
    venue_with_offerer_not_valid = create_venue(offerer_not_valid, siret='12345679812345')
    PcObject.save(venue_with_offerer_valid, venue_with_offerer_not_valid)

    # When
    query_with_not_valid_offerer_only = find_filtered_venues(has_validated_offerer=False)

    # Then
    assert venue_with_offerer_valid not in query_with_not_valid_offerer_only
    assert venue_with_offerer_not_valid in query_with_not_valid_offerer_only
예제 #9
0
def test_find_filtered_venues_with_has_offerer_with_siren_param_return_filtered_venues(app):
    # Given
    offerer_with_siren = create_offerer()
    offerer_without_siren = create_offerer(siren=None)

    venue_with_offerer_with_siren = create_venue(offerer_with_siren)
    venue_with_offerer_without_siren = create_venue(offerer_without_siren, siret='12345678912346')
    PcObject.save(venue_with_offerer_with_siren, venue_with_offerer_without_siren)

    # When
    query_validated = find_filtered_venues(has_offerer_with_siren=True)

    # Then
    assert venue_with_offerer_without_siren not in query_validated
    assert venue_with_offerer_with_siren in query_validated
예제 #10
0
def test_find_filtered_venues_with_has_siret_param_return_filtered_venues(app):
    # Given
    offerer = create_offerer()
    venue_virtual = create_venue(offerer, is_virtual=True, siret=None)
    venue_with_siret = create_venue(offerer)
    venue_without_siret = create_venue(offerer, siret=None, comment="comment", is_virtual=False)
    PcObject.save(venue_virtual, venue_with_siret, venue_without_siret)

    # When
    query_no_siret = find_filtered_venues(has_siret=False)

    # Then
    assert venue_without_siret in query_no_siret
    assert venue_virtual in query_no_siret
    assert venue_with_siret not in query_no_siret
예제 #11
0
def test_find_filtered_venues_with_zipcodes_param_return_filtered_venues(app):
    # Given
    offerer = create_offerer()
    venue_93000 = create_venue(offerer, postal_code='93000')
    venue_67000 = create_venue(offerer, postal_code='67000', siret='12345678912346')
    venue_34000 = create_venue(offerer, postal_code='34000', siret='12345678912347')
    venue_virtual = create_venue(offerer, is_virtual=True, siret=None)
    PcObject.save(venue_virtual, venue_93000, venue_67000, venue_34000)

    # When
    query_with_zipcodes = find_filtered_venues(zip_codes=['93000', '34000'])

    # Then
    assert venue_93000 in query_with_zipcodes
    assert venue_34000 in query_with_zipcodes
    assert venue_virtual not in query_with_zipcodes
    assert venue_67000 not in query_with_zipcodes
예제 #12
0
def test_find_filtered_venues_with_dpts_param_return_filtered_venues(app):
    # Given
    offerer = create_offerer()
    venue_93 = create_venue(offerer, departement_code='93', postal_code='93000')
    venue_67 = create_venue(offerer, departement_code='67', postal_code='67000',
                            siret='12345678912346')
    venue_34 = create_venue(offerer, departement_code='34', postal_code='34000',
                            siret='12345678912347')
    venue_virtual = create_venue(offerer, is_virtual=True, siret=None, postal_code=None)
    PcObject.save(venue_93, venue_67, venue_34, venue_virtual)

    # When
    query_with_dpts = find_filtered_venues(dpts=['93', '67'])

    # Then
    assert venue_93 in query_with_dpts
    assert venue_67 in query_with_dpts
    assert venue_34 not in query_with_dpts
    assert venue_virtual not in query_with_dpts
예제 #13
0
def test_find_filtered_venues_with_date_params_return_filtered_venues(app):
    # Given
    offerer = create_offerer()
    venue_20180630 = create_venue(offerer)
    venue_20180730 = create_venue(offerer, siret='12345678912346')
    venue_20180830 = create_venue(offerer, siret='12345678912347')
    PcObject.save(venue_20180630, venue_20180730, venue_20180830)

    activity1 = create_venue_activity(venue_20180630, 'venue', 'insert', issued_at=datetime(2018,
                                                                                            6, 30))
    activity2 = create_venue_activity(venue_20180730, 'venue', 'insert', issued_at=datetime(2018,
                                                                                            7, 30))
    activity3 = create_venue_activity(venue_20180830, 'venue', 'insert', issued_at=datetime(2018,
                                                                                            8, 30))
    save_all_activities(activity1, activity2, activity3)

    # When
    query_with_date = find_filtered_venues(from_date='2018-07-01',
                                           to_date='2018-08-01')

    # Then
    assert venue_20180630 not in query_with_date
    assert venue_20180830 not in query_with_date
    assert venue_20180730 in query_with_date
예제 #14
0
def test_find_filtered_venues_with_offer_status_with_ALL_param_return_filtered_venues(app):
    # Given
    offerer = create_offerer()

    venue_without_offer = create_venue(offerer)
    venue_with_valid_event = create_venue(offerer, siret='12345678912346')
    venue_with_expired_event = create_venue(offerer, siret='12345678912347')
    venue_with_valid_thing = create_venue(offerer, siret='12345678912348')
    venue_with_expired_thing = create_venue(offerer, siret='12345678912349')
    venue_with_soft_deleted_thing = create_venue(offerer, siret='12345678912342')
    venue_with_soft_deleted_event = create_venue(offerer, siret='12345678912343')
    venue_with_not_available_event = create_venue(offerer, siret='12345678912344')

    valid_event = create_offer_with_event_product(venue_with_valid_event)
    expired_event = create_offer_with_event_product(venue_with_expired_event)
    valid_thing = create_offer_with_thing_product(venue_with_valid_thing)
    expired_thing = create_offer_with_thing_product(venue_with_expired_thing)
    soft_deleted_thing = create_offer_with_thing_product(venue_with_soft_deleted_thing)
    soft_deleted_event = create_offer_with_event_product(venue_with_soft_deleted_event)
    not_available_event = create_offer_with_event_product(venue_with_not_available_event)

    valid_event_occurrence = create_event_occurrence(valid_event,
                                                     beginning_datetime=datetime.utcnow() + timedelta(days=4),
                                                     end_datetime=datetime.utcnow() + timedelta(days=5))
    valid_event_occurrence_soft_deleted = create_event_occurrence(soft_deleted_event,
                                                                  beginning_datetime=datetime.utcnow() + timedelta(
                                                                      days=4),
                                                                  end_datetime=datetime.utcnow() + timedelta(days=5))
    valid_event_occurrence_not_available = create_event_occurrence(not_available_event,
                                                                   beginning_datetime=datetime.utcnow() + timedelta(
                                                                       days=4),
                                                                   end_datetime=datetime.utcnow() + timedelta(days=5))
    expired_event_occurence = create_event_occurrence(expired_event,
                                                      beginning_datetime=datetime(2018, 2, 1),
                                                      end_datetime=datetime(2018, 3, 2))

    valid_stock = create_stock_with_thing_offer(offerer, venue_with_valid_thing, valid_thing)
    expired_stock = create_stock_with_thing_offer(offerer, venue_with_expired_thing, expired_thing, available=0)
    soft_deleted_thing_stock = create_stock_with_thing_offer(offerer, venue_with_soft_deleted_thing, soft_deleted_thing,
                                                             soft_deleted=True)

    expired_booking_limit_date_event_stock = create_stock_from_event_occurrence(expired_event_occurence,
                                                                                booking_limit_date=datetime(2018, 1, 1))
    valid_booking_limit_date_event_stock = create_stock_from_event_occurrence(valid_event_occurrence,
                                                                              booking_limit_date=datetime.utcnow() + timedelta(
                                                                                  days=3))
    soft_deleted_event_stock = create_stock_from_event_occurrence(valid_event_occurrence_soft_deleted,
                                                                  soft_deleted=True,
                                                                  booking_limit_date=datetime.utcnow() + timedelta(
                                                                      days=3))
    not_available_event_stock = create_stock_from_event_occurrence(valid_event_occurrence_not_available,
                                                                   available=0,
                                                                   booking_limit_date=datetime.utcnow() + timedelta(
                                                                       days=3))

    PcObject.save(venue_without_offer,
                  valid_stock, expired_stock, soft_deleted_thing_stock,
                  expired_booking_limit_date_event_stock,
                  valid_booking_limit_date_event_stock, soft_deleted_event_stock)

    # When
    query_with_all_offer = find_filtered_venues(offer_status='ALL')

    # Then
    assert venue_with_valid_event in query_with_all_offer
    assert venue_without_offer not in query_with_all_offer
    assert venue_with_expired_event in query_with_all_offer
    assert venue_with_valid_thing in query_with_all_offer
    assert venue_with_expired_thing in query_with_all_offer
    assert venue_with_soft_deleted_thing in query_with_all_offer
    assert venue_with_soft_deleted_event in query_with_all_offer
    assert venue_with_not_available_event in query_with_all_offer