예제 #1
0
def scoreboard(request):
    template = 'pages/scoreboard.html'

    counts = count_approved_events_for_country()

    return render_to_response(template, {
        'counts': counts,
    },
                              context_instance=RequestContext(request))
예제 #2
0
def scoreboard(request):
    template = 'pages/scoreboard.html'

    counts = count_approved_events_for_country()

    return render_to_response(
        template, {
            'counts': counts,
        },
        context_instance=RequestContext(request))
예제 #3
0
def test_scoreboard_links_and_results(admin_user, db, client):

    test_country_name = "Slovenia"
    test_country_code = "SI"

    search_url = reverse("web.search_events") + "?country_code=%s&past=yes" % test_country_code

    event_data = {
        "audience": [3],
        "theme": [1, 2],
        "country": test_country_code,
        "description": u"Lorem ipsum dolor sit amet.",
        "location": test_country_name,
        "organizer": u"testko",
        "creator": admin_user,
        "start_date": datetime.datetime.now(),
        "end_date": datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
        "title": u"Test Approved Event",
        "status": "APPROVED",
    }

    test_approved_event = create_or_update_event(event_id=None, **event_data)

    for country in count_approved_events_for_country():
        if country["country_code"] == test_country_code:
            event_count = country["events"]

    response = client.get(reverse("web.scoreboard"))

    # We're expecting to see this bit of HTML code with the right
    # search URL and the right count for events
    expected_result = """
	<span class="country-name">%s</span><p> is participating with </p>
	<a href="%s">
	<span class="event-number">%s event
	""" % (
        test_country_name,
        search_url,
        event_count,
    )

    expected_result = expected_result.replace("\t", "").replace("\n", "")
    scoreboard_content = response.content.replace("\t", "").replace("\n", "")

    # The search URL shown on scoreboard also has to match search results
    search_response = client.get(search_url)
    expected_search_result = '<div class="search-counter">%s event' % event_count

    assert expected_result in scoreboard_content
    assert expected_search_result in search_response.content

    test_approved_event.delete()
예제 #4
0
def test_scoreboard_links_and_results(admin_user, db, client):

	test_country_name = "Slovenia"
	test_country_code = "SI"

	search_url = (reverse('web.search_events') + 
				"?country_code=%s&amp;past=yes" % test_country_code)

	event_data = {
			'audience': [3],
			'theme': [1,2],
			'country': test_country_code,
			'description': u'Lorem ipsum dolor sit amet.',
			'location': test_country_name,
			'organizer': u'testko',
			"creator": admin_user,
			'start_date': datetime.datetime.now(),
			'end_date': datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
			'title': u'Test Approved Event',
			'status':"APPROVED",
	}

	test_approved_event = create_or_update_event(event_id=None, **event_data)

	for country in count_approved_events_for_country():
		if country['country_code'] == test_country_code:
			event_count = country['events']

	response = client.get(reverse('web.scoreboard'))

	# We're expecting to see this bit of HTML code with the right
	# search URL and the right count for events
	expected_result = '''
	<span class="country-name">%s</span><p> is participating with </p>
	<a href="%s">
	<span class="event-number">%s event
	''' % (test_country_name, search_url, event_count)

	expected_result = expected_result.replace('\t', '').replace('\n', '')
	scoreboard_content = response.content.replace('\t', '').replace('\n', '')

	# The search URL shown on scoreboard also has to match search results
	search_response = client.get(search_url)
	expected_search_result = '<div class="search-counter">%s event' % event_count

	assert expected_result in scoreboard_content
	assert expected_search_result in search_response.content

	test_approved_event.delete()
예제 #5
0
def test_scoreboard_links_and_results(admin_user, db, client):

    test_country_name = "Slovenia"
    test_country_code = "SI"

    search_url = (reverse('web.search_events') +
                  "?country_code=%s&amp;past=yes" % test_country_code)

    event_data = {
        'audience': [3],
        'theme': [1, 2],
        'country': test_country_code,
        'description': u'Lorem ipsum dolor sit amet.',
        'location': test_country_name,
        'organizer': u'testko',
        "creator": admin_user,
        'start_date': datetime.datetime.now(),
        'end_date': datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
        'title': u'Test Approved Event',
        'status': "APPROVED",
    }

    test_approved_event = create_or_update_event(event_id=None, **event_data)

    for country in count_approved_events_for_country():
        if country['country_code'] == test_country_code:
            event_count = country['events']

    response = client.get(reverse('web.scoreboard'))

    # We're expecting to see this bit of HTML code with the right
    # search URL and the right count for events
    expected_result = '''
	<span class="country-name">%s</span><p> is participating with </p>
	<a href="%s">
	<span class="event-number">%s event
	''' % (test_country_name, search_url, event_count)

    expected_result = expected_result.replace('\t', '').replace('\n', '')
    scoreboard_content = response.content.replace('\t', '').replace('\n', '')

    # The search URL shown on scoreboard also has to match search results
    search_response = client.get(search_url)
    expected_search_result = '<div class="search-counter">%s event' % event_count

    assert expected_result in scoreboard_content
    assert expected_search_result in search_response.content

    test_approved_event.delete()
예제 #6
0
 def get_queryset(self):
     return count_approved_events_for_country()
예제 #7
0
 def get_queryset(self):
     return count_approved_events_for_country()
def test_scoreboard_counter(admin_user, db):

    initial_counter = count_approved_events_for_country()

    # extra check to make sure the number of results matches
    # the number of listed countries minus two custom entries
    all_countries = list_countries()
    assert len(initial_counter) == len(all_countries[2:])

    counted_events_before = 0

    for country in initial_counter:
        if country["country_code"] == "SI":
            counted_events_before = country["events"]

            # Adding one approved and one pending event in same country
            # the count for events for the country should increase by 1
    event_data = {
        "audience": [3],
        "theme": [1, 2],
        "country": u"SI",
        "description": u"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "location": u"Ljubljana, Slovenia",
        "organizer": u"testko",
        "creator": admin_user,
        "start_date": datetime.datetime.now(),
        "end_date": datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
        "title": u"Test Approved Event",
        "status": "APPROVED",
    }

    test_approved_event = create_or_update_event(event_id=None, **event_data)

    event_data = {
        "audience": [3],
        "theme": [1, 2],
        "country": u"SI",
        "description": u"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "location": u"Ljubljana, Slovenia",
        "organizer": u"testko",
        "creator": admin_user,
        "start_date": datetime.datetime.now(),
        "end_date": datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
        "title": u"Test Pending Event",
        "status": "PENDING",
    }

    test_pending_event = create_or_update_event(event_id=None, **event_data)

    new_counter = count_approved_events_for_country()

    counted_events_after = 0
    country_score_after = 0

    for country in new_counter:
        if country["country_code"] == "SI":
            counted_events_after = country["events"]
            country_score_after = country["score"]

            # An extra check with a direct DB query
    counted_events_query = Event.objects.filter(status="APPROVED").filter(country="SI").count()

    assert counted_events_after == counted_events_before + 1
    assert counted_events_after == counted_events_query

    assert country_score_after > 0

    test_approved_event.delete()
    test_pending_event.delete()
예제 #9
0
def test_scoreboard_counter(admin_user, db):

    initial_counter = count_approved_events_for_country()

    # extra check to make sure the number of results matches
    # the number of active countries
    assert len(initial_counter) == 0

    counted_events_before = 0

    for country in initial_counter:
        if country['country_code'] == 'SI':
            counted_events_before = country['events']

    # Adding one approved and one pending event in same country
    # the count for events for the country should increase by 1
    event_data = {
        'audience': [3],
        'theme': [1, 2],
        'country': u'SI',
        'description':
        u'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
        'location': u'Ljubljana, Slovenia',
        'organizer': u'testko',
        "creator": admin_user,
        'start_date': datetime.datetime.now(),
        'end_date':
        datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
        'title': u'Test Approved Event',
        'status': "APPROVED",
    }

    test_approved_event = create_or_update_event(event_id=None, **event_data)

    event_data = {
        'audience': [3],
        'theme': [1, 2],
        'country': u'SI',
        'description':
        u'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
        'location': u'Ljubljana, Slovenia',
        'organizer': u'testko',
        "creator": admin_user,
        'start_date': datetime.datetime.now(),
        'end_date':
        datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
        'title': u'Test Pending Event',
        'status': "PENDING",
    }

    test_pending_event = create_or_update_event(event_id=None, **event_data)

    # and one event from another country, which shouldn't increase the counter
    event_data = {
        'audience': [3],
        'theme': [1, 2],
        'country': u'IT',
        'description':
        u'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
        'location': u'Rome, Italy',
        'organizer': u'testko',
        "creator": admin_user,
        'start_date': datetime.datetime.now(),
        'end_date':
        datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
        'title': u'Test Approved Event in other country',
        'status': "APPROVED",
    }

    test_other_country_event = create_or_update_event(event_id=None,
                                                      **event_data)

    new_counter = count_approved_events_for_country()

    counted_events_after = 0
    country_score_after = 0

    for country in new_counter:
        if country['country_code'] == 'SI':
            counted_events_after = country['events']
            country_score_after = country['score']

    # An extra check with a direct DB query
    counted_events_query = Event.objects.filter(status='APPROVED').filter(
        country='SI').count()

    assert counted_events_after == counted_events_before + 1
    assert counted_events_after == counted_events_query

    assert country_score_after > 0

    test_approved_event.delete()
    test_pending_event.delete()
    test_other_country_event.delete()
def test_scoreboard_counter(admin_user, db):

	initial_counter = count_approved_events_for_country()

	# extra check to make sure the number of results matches 
	# the number of listed countries minus two custom entries
	all_countries = list_countries()
	assert len(initial_counter) == len(all_countries[2:])

	counted_events_before = 0

	for country in initial_counter:
		if country['country_code'] == 'SI':
			counted_events_before = country['events']

	# Adding one approved and one pending event in same country
	# the count for events for the country should increase by 1
	event_data = {
		'audience': [3],
		'theme': [1,2],
		'country': u'SI',
		'description': u'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
		'location': u'Ljubljana, Slovenia',
		'organizer': u'testko',
		"creator": admin_user,
		'start_date': datetime.datetime.now(),
		'end_date': datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
		'title': u'Test Approved Event',
		'status':"APPROVED",
	}

	test_approved_event = create_or_update_event(event_id=None, **event_data)

	event_data = {
		'audience': [3],
		'theme': [1,2],
		'country': u'SI',
		'description': u'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
		'location': u'Ljubljana, Slovenia',
		'organizer': u'testko',
		"creator": admin_user,
		'start_date': datetime.datetime.now(),
		'end_date': datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
		'title': u'Test Pending Event',
		'status':"PENDING",
	}

	test_pending_event = create_or_update_event(event_id=None, **event_data)

	# and one event from another country, which shouldn't increase the counter
	event_data = {
		'audience': [3],
		'theme': [1,2],
		'country': u'IT',
		'description': u'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
		'location': u'Rome, Italy',
		'organizer': u'testko',
		"creator": admin_user,
		'start_date': datetime.datetime.now(),
		'end_date': datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
		'title': u'Test Approved Event in other country',
		'status':"APPROVED",
	}

	test_other_country_event = create_or_update_event(event_id=None, **event_data)

	new_counter = count_approved_events_for_country()

	counted_events_after = 0
	country_score_after = 0

	for country in new_counter:
			if country['country_code'] == 'SI':
				counted_events_after = country['events']
				country_score_after = country['score']

	# An extra check with a direct DB query
	counted_events_query = Event.objects.filter(status='APPROVED').filter(country='SI').count()
	
	assert counted_events_after == counted_events_before + 1
	assert counted_events_after == counted_events_query

	assert country_score_after > 0 
	
	test_approved_event.delete()
	test_pending_event.delete()
	test_other_country_event.delete()