Exemple #1
0
def test_notification_context_for_edit(create_revision, edit_revision):
    """Test the notification context for an edited English page."""
    context = notification_context(edit_revision)
    utm_campaign = ('?utm_campaign=Wiki+Doc+Edits&utm_medium=email'
                    '&utm_source=developer.mozilla.org')
    url = '/en-US/docs/Root'
    user_url = reverse('users.user_detail', kwargs={'username': '******'})
    compare_url = (url +
                   "$compare?to=%d" % edit_revision.id +
                   "&from=%d" % create_revision.id +
                   utm_campaign.replace("?", "&"))
    diff = """\
--- [en-US] #%d

+++ [en-US] #%d

@@ -5,7 +5,7 @@

   </head>
   <body>
     <p>
-      Getting started...
+      The root document.
     </p>
   </body>
 </html>""" % (create_revision.id, edit_revision.id)

    expected = {
        'creator': edit_revision.creator,
        'diff': diff,
        'document_title': 'Root Document',
        'locale': 'en-US'
    }

    expected_urls = {
        'compare_url': order_params(compare_url),
        'edit_url': order_params(url + '$edit' + utm_campaign),
        'history_url': order_params(url + '$history' + utm_campaign),
        'user_url': order_params(user_url + utm_campaign),
        'view_url': url + utm_campaign
    }

    assert_expectations_url(context, expected, expected_urls)
Exemple #2
0
    def test_merge_query_param(self):
        original = 'http://example.com/?spam=eggs'
        url = QueryURLObject(original)

        assert original == url.merge_query_param('spam', 'eggs')
        assert original + '&spam=spam' == url.merge_query_param('spam', 'spam')

        original = 'http://example.com/?foo=&spam=eggs&foo=bar'
        url = QueryURLObject(original)

        merged_url = order_params(url.merge_query_param('foo', None))
        assert merged_url == 'http://example.com/?foo=&foo=bar&spam=eggs'

        merged_url = order_params(url.merge_query_param('foo', [None]))
        assert merged_url == 'http://example.com/?foo=&foo=bar&spam=eggs'

        # bug 930300
        url = QueryURLObject('http://example.com/en-US/search?q=javascript%20&&&highlight=false')
        merged_url = order_params(url.merge_query_param('topic', 'api'))
        assert merged_url == 'http://example.com/en-US/search?highlight=false&q=javascript&topic=api'
Exemple #3
0
def get_compare_url(doc, from_id, to_id):
    return order_params(
        urlparams(
            reverse("wiki.compare_revisions",
                    args=[doc.slug],
                    locale=doc.locale),
            **{
                "from": from_id,
                "to": to_id
            },
        ))
Exemple #4
0
def test_notification_context_for_translation(trans_revision, create_revision):
    """Test the notification context for a created English page."""
    context = notification_context(trans_revision)
    utm_campaign = ('?utm_campaign=Wiki+Doc+Edits&utm_medium=email'
                    '&utm_source=developer.mozilla.org')
    url = '/fr/docs/Racine'
    user_url = reverse('users.user_detail', kwargs={'username': '******'})
    compare_url = (url + "$compare?to=%d" % trans_revision.id +
                   "&from=%d" % create_revision.id +
                   utm_campaign.replace("?", "&"))
    diff = """\
--- [en-US] #%d

+++ [fr] #%d

@@ -5,7 +5,7 @@

   </head>
   <body>
     <p>
-      Getting started...
+      Mise en route...
     </p>
   </body>
 </html>""" % (create_revision.id, trans_revision.id)
    expected = {
        'creator': trans_revision.creator,
        'diff': diff,
        'document_title': 'Racine du Document',
        'locale': 'fr'
    }

    expected_urls = {
        'compare_url': order_params(compare_url),
        'edit_url': order_params(url + '$edit' + utm_campaign),
        'history_url': order_params(url + '$history' + utm_campaign),
        'user_url': order_params(user_url + utm_campaign),
        'view_url': order_params(url + utm_campaign)
    }

    assert_expectations_url(context, expected, expected_urls)
Exemple #5
0
    def test_merge_query_param(self):
        original = 'http://example.com/?spam=eggs'
        url = QueryURLObject(original)

        assert original == url.merge_query_param('spam', 'eggs')
        assert original + '&spam=spam' == url.merge_query_param('spam', 'spam')

        original = 'http://example.com/?foo=&spam=eggs&foo=bar'
        url = QueryURLObject(original)

        merged_url = order_params(url.merge_query_param('foo', None))
        assert merged_url == 'http://example.com/?foo=&foo=bar&spam=eggs'

        merged_url = order_params(url.merge_query_param('foo', [None]))
        assert merged_url == 'http://example.com/?foo=&foo=bar&spam=eggs'

        # bug 930300
        url = QueryURLObject(
            'http://example.com/en-US/search?q=javascript%20&&&highlight=false'
        )
        merged_url = order_params(url.merge_query_param('topic', 'api'))
        assert merged_url == 'http://example.com/en-US/search?highlight=false&q=javascript&topic=api'
Exemple #6
0
def test_notification_context_for_create(create_revision):
    """Test the notification context for a created English page."""
    context = notification_context(create_revision)
    utm_campaign = ('?utm_campaign=Wiki+Doc+Edits&utm_medium=email'
                    '&utm_source=developer.mozilla.org')
    url = '/en-US/docs/Root'
    user_url = reverse('users.user_detail', kwargs={'username': '******'})
    expected = {
        'compare_url': '',
        'creator': create_revision.creator,
        'diff': 'Diff is unavailable.',
        'document_title': 'Root Document',
        'locale': 'en-US'
    }

    expected_urls = {
        'edit_url': order_params(url + '$edit' + utm_campaign),
        'history_url': order_params(url + '$history' + utm_campaign),
        'user_url': order_params(user_url + utm_campaign),
        'view_url': order_params(url + utm_campaign)
    }

    assert_expectations_url(context, expected, expected_urls)
Exemple #7
0
def test_notification_context_for_create(create_revision):
    """Test the notification context for a created English page."""
    context = notification_context(create_revision)
    utm_campaign = ("?utm_campaign=Wiki+Doc+Edits&utm_medium=email"
                    "&utm_source=developer.mozilla.org")
    url = "/en-US/docs/Root"
    user_url = reverse("users.user_detail", kwargs={"username": "******"})
    expected = {
        "compare_url": "",
        "creator": create_revision.creator,
        "diff": "Diff is unavailable.",
        "document_title": "Root Document",
        "locale": "en-US",
    }

    expected_urls = {
        "edit_url": order_params(url + "$edit" + utm_campaign),
        "history_url": order_params(url + "$history" + utm_campaign),
        "user_url": order_params(user_url + utm_campaign),
        "view_url": order_params(url + utm_campaign),
    }

    assert_expectations_url(context, expected, expected_urls)
Exemple #8
0
def test_notification_context_for_create(create_revision):
    """Test the notification context for a created English page."""
    context = notification_context(create_revision)
    utm_campaign = ('?utm_campaign=Wiki+Doc+Edits&utm_medium=email'
                    '&utm_source=developer.mozilla.org')
    url = '/en-US/docs/Root'
    user_url = reverse('users.user_detail', kwargs={'username': '******'})
    expected = {
        'compare_url': '',
        'creator': create_revision.creator,
        'diff': 'Diff is unavailable.',
        'document_title': 'Root Document',
        'locale': 'en-US'
    }

    expected_urls = {
        'edit_url': order_params(url + '$edit' + utm_campaign),
        'history_url': order_params(url + '$history' + utm_campaign),
        'user_url': order_params(user_url + utm_campaign),
        'view_url': order_params(url + utm_campaign)
    }

    assert_expectations_url(context, expected, expected_urls)
Exemple #9
0
    def __iter__(self):
        input = html5lib_Filter.__iter__(self)

        for token in input:

            yield token

            if token['type'] == 'StartTag' and token['name'] in SECTION_TAGS:
                attrs = dict(token['data'])
                for (namespace, name), value in attrs.items():
                    if name == 'id' and value:
                        ts = ({'type': 'StartTag',
                               'name': 'a',
                               'data': {
                                   (None, u'title'): ugettext('Edit section'),
                                   (None, u'class'): 'edit-section',
                                   (None, u'data-section-id'): value,
                                   (None, u'data-section-src-url'): order_params(u'%s?%s' % (
                                       reverse('wiki.document',
                                               args=[self.slug],
                                               locale=self.locale),
                                       urlencode({'section': value.encode('utf-8'),
                                                  'raw': 'true'})
                                   )),
                                   (None, u'href'): order_params(u'%s?%s' % (
                                       reverse('wiki.edit',
                                               args=[self.slug],
                                               locale=self.locale),
                                       (urlencode({'section': value.encode('utf-8'),
                                                   'edit_links': 'true'})
                                        )))
                               }},
                              {'type': 'Characters',
                               'data': ugettext(u'Edit')},
                              {'type': 'EndTag', 'name': 'a'})
                        for t in ts:
                            yield t
Exemple #10
0
    def __iter__(self):
        input = html5lib_Filter.__iter__(self)

        for token in input:

            yield token

            if token['type'] == 'StartTag' and token['name'] in SECTION_TAGS:
                attrs = dict(token['data'])
                for (namespace, name), value in attrs.items():
                    if name == 'id' and value:
                        ts = ({'type': 'StartTag',
                               'name': 'a',
                               'data': {
                                   (None, u'title'): ugettext('Edit section'),
                                   (None, u'class'): 'edit-section',
                                   (None, u'data-section-id'): value,
                                   (None, u'data-section-src-url'): order_params(u'%s?%s' % (
                                       reverse('wiki.document',
                                               args=[self.slug],
                                               locale=self.locale),
                                       urlencode({'section': value.encode('utf-8'),
                                                  'raw': 'true'})
                                   )),
                                   (None, u'href'): order_params(u'%s?%s' % (
                                       reverse('wiki.edit',
                                               args=[self.slug],
                                               locale=self.locale),
                                       (urlencode({'section': value.encode('utf-8'),
                                                   'edit_links': 'true'})
                                        )))
                               }},
                              {'type': 'Characters',
                               'data': ugettext(u'Edit')},
                              {'type': 'EndTag', 'name': 'a'})
                        for t in ts:
                            yield t
Exemple #11
0
def get_compare_url(doc, from_id, to_id):
    return order_params(urlparams(
        reverse('wiki.compare_revisions', args=[doc.slug], locale=doc.locale),
        **{'from': from_id, 'to': to_id}
    ))
Exemple #12
0
def get_compare_url(doc, from_id, to_id):
    return order_params(urlparams(
        reverse('wiki.compare_revisions', args=[doc.slug], locale=doc.locale),
        **{'from': from_id, 'to': to_id}
    ))
Exemple #13
0
def test_order_params(original, expected):
    assert order_params(original) == expected
Exemple #14
0
def test_order_params(original, expected):
    assert order_params(original) == expected
Exemple #15
0
def assert_expectations_url(context, expected, expected_urls):
    for key in expected.keys():
        assert context[key] == expected[key]
    for key in expected_urls.keys():
        assert order_params(context[key]) == expected_urls[key]
Exemple #16
0
def assert_expectations_url(context, expected, expected_urls):
    for key in expected.keys():
        assert context[key] == expected[key]
    for key in expected_urls.keys():
        assert order_params(context[key]) == expected_urls[key]