def url_surt(request, slug, surt):
    # Add back the slash lost by Apache removing null path segments.
    surt = fix_http_double_slash(surt)
    # Get the project by the project slug.
    project = get_project(slug)
    # Create the SURT dictionary containing url_list and single_letter.
    surt_dict = create_surt_dict(project, surt)
    # Create the alphabetical browse dictionary.
    browse_dict = alphabetical_browse(project)
    # Add Browse by if browsing surts by letter.
    top_domain_search = re.compile(r'^http://\(([^,]+),?').search(surt, 0)
    if top_domain_search:
        top_domain = top_domain_search.group(1)
    else:
        top_domain = None
    return render_to_response(
        'nomination/url_surt.html',
        {
            'surt': surt,
            'project': project,
            'url_list': surt_dict['url_list'],
            'letter': surt_dict['letter'],
            'browse_domain': top_domain,
            'browse_dict': browse_dict,
        },
        RequestContext(request, {}),
    )
    def test_returns_expected(self, surt_root, expected_letter):
        project = factories.ProjectFactory()
        surts = [
            surt_root + '/some/stuff',
            surt_root + '/other/stuff',
            surt_root + '/nothing',
            surt_root
        ]
        urls = [factories.SURTFactory(url_project=project, value=surt) for surt in surts]
        surt_dict = url_handler.create_surt_dict(project, surt_root)

        assert len(surt_dict['url_list']) == len(surts)
        for url in surt_dict['url_list']:
            assert url in urls
        assert surt_dict['letter'] == expected_letter
 def test_returns_none_when_no_surts_found(self):
     surt_dict = url_handler.create_surt_dict('', 'http://(com,example,)')
     assert surt_dict['url_list'] is None