Exemplo n.º 1
0
def test_create_quote(app):
    user = factories.UserFactory()
    topic = factories.TopicFactory()

    # First try to create a quote as no non-curator user
    source, quote, arguments = factories.get_quote_form_data(
        text='Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.'
    )
    services.create_quote(user, topic, source, quote, arguments)
    assert services.dump_topic_posts(topic) == ''
    assert services.dump_topic_posts(topic, queue=True) == '\n'.join([
        '( ) (-) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (0)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
    ])

    # Now create a post as a curator user
    factories.TopicCuratorFactory(user=user, topic=topic)
    source, quote, arguments = factories.get_quote_form_data(
        text='Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.'
    )
    services.create_quote(user, topic, source, quote, arguments)
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (0)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
    ])
Exemplo n.º 2
0
def test_user_post_vote(app):
    user = factories.UserFactory()
    topic = factories.TopicFactory()
    event = factories.EventFactory()
    post = factories.PostFactory(topic=topic, content_object=event)

    # User upvotes a post
    resp = app.post(reverse('js:user-post-vote', args=[post.pk]), {'vote': 1}, user=user)
    assert resp.json == {'success': True, 'upvotes': 1, 'downvotes': 0}
    assert services.dump_topic_posts(topic) == '\n'.join([
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                         e-seimas.lrs.lt 2016-03-22 (1)',
    ])

    # User downvotes same post
    resp = app.post(reverse('js:user-post-vote', args=[post.pk]), {'vote': -1}, user=user)
    assert resp.json == {'success': True, 'upvotes': 0, 'downvotes': 1}
    assert services.dump_topic_posts(topic) == '\n'.join([
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                         e-seimas.lrs.lt 2016-03-22 (-1)',
    ])

    # User clears his vote
    resp = app.post(reverse('js:user-post-vote', args=[post.pk]), {'vote': 0}, user=user)
    assert resp.json == {'success': True, 'upvotes': 0, 'downvotes': 0}
    assert services.dump_topic_posts(topic) == '\n'.join([
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                         e-seimas.lrs.lt 2016-03-22 (0)',
    ])
Exemplo n.º 3
0
def test_create_event(app):
    user = factories.UserFactory()
    topic = factories.TopicFactory()
    factories.TopicCuratorFactory(user=user, topic=topic)

    resp = app.get(reverse('event-create', args=[topic.pk, topic.slug]), user=user)
    form = resp.forms['event-form']
    form['title'] = 'Balsavimo internetu koncepcijos patvirtinimas'
    form['source_link'] = 'https://e-seimas.lrs.lt/portal/legalAct/lt/TAD/TAIS.287235?positionInSearchResults=0&searchModelUUID=eaee1625-cf9f-46c0-931c-482a218029e8'
    form['timestamp'] = '2006-11-16'
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert services.dump_topic_posts(topic) == '\n'.join([
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                         e-seimas.lrs.lt 2006-11-16 (0)',
    ])

    # Try to add same event second time
    resp = app.get(reverse('event-create', args=[topic.pk, topic.slug]), user=user)
    form = resp.forms['event-form']
    form['title'] = 'Balsavimo internetu koncepcijos patvirtinimas'
    form['source_link'] = 'https://e-seimas.lrs.lt/portal/legalAct/lt/TAD/TAIS.287235?positionInSearchResults=0&searchModelUUID=eaee1625-cf9f-46c0-931c-482a218029e8'
    form['timestamp'] = '2006-11-16'
    resp = form.submit()

    assert resp.status == '200 OK'
    assert resp.context['form'].errors.as_text() == '\n'.join([
        '* source_link',
        '  * Toks įvykis jau yra įtrauktas į „Balsavimas internetu“ temą.',
    ])
    assert services.dump_topic_posts(topic) == '\n'.join([
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                         e-seimas.lrs.lt 2006-11-16 (0)',
    ])
Exemplo n.º 4
0
def test_delete_post(App, app):
    curator = factories.UserFactory(first_name='curator')
    topic = factories.TopicFactory()
    factories.TopicCuratorFactory(user=curator, topic=topic)
    factories.create_topic_posts(topic, curator, [
        ('quote', 'Eligijus Masiulis', 'seimo narys', 'delfi.lt', '2015-10-08', [
            (0, 0, 'Mes palaikysim tokį įstatymą.', [
                (1, 'šiuolaikiška, modernu', None),
            ]),
            (1, 0, 'Galimybė prekiauti balsais.', [
                (-1, 'balsų pirkimas', None),
            ]),
        ]),
    ])

    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (-) Eligijus Masiulis (seimo narys)                                              delfi.lt 2015-10-08    ',
        ' |      Mes palaikysim tokį įstatymą.                                                                    (0)',
        ' |      - (y) šiuolaikiška, modernu                                                                         ',
        ' |      Galimybė prekiauti balsais.                                                                      (1)',
        ' |      - (n) balsų pirkimas                                                                                ',
    ])

    post = models.Post.objects.get(topic=topic, quote__text='Galimybė prekiauti balsais.')
    resp = app.get(reverse('topic-details', args=[topic.pk, topic.slug]), user=curator)
    resp.click('trinti', href=reverse('post-delete', args=[post.pk]))

    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (y) Eligijus Masiulis (seimo narys)                                              delfi.lt 2015-10-08    ',
        ' |      Mes palaikysim tokį įstatymą.                                                                    (0)',
        ' |      - (y) šiuolaikiška, modernu                                                                         ',
    ])
Exemplo n.º 5
0
def test_create_quote(app):
    user = factories.UserFactory()
    topic = factories.TopicFactory()

    # First try to create a quote as no non-curator user
    source, quote, arguments = factories.get_quote_form_data(
        text='Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.'
    )
    services.create_quote(user, topic, source, quote, arguments)
    assert services.dump_topic_posts(topic) == ''
    assert services.dump_topic_posts(topic, queue=True) == '\n'.join([
        '( ) (-) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (0)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
    ])

    # Now create a post as a curator user
    factories.TopicCuratorFactory(user=user, topic=topic)
    source, quote, arguments = factories.get_quote_form_data(
        text='Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.')
    services.create_quote(user, topic, source, quote, arguments)
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (0)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
    ])
Exemplo n.º 6
0
def test_create_event(app):
    user = factories.UserFactory()
    topic = factories.TopicFactory()
    factories.TopicCuratorFactory(user=user, topic=topic)

    resp = app.get(reverse('event-create', args=[topic.pk, topic.slug]), user=user)
    form = resp.forms['event-form']
    form['title'] = 'Balsavimo internetu koncepcijos patvirtinimas'
    form['source_link'] = 'https://e-seimas.lrs.lt/portal/legalAct/lt/TAD/TAIS.287235?positionInSearchResults=0&searchModelUUID=eaee1625-cf9f-46c0-931c-482a218029e8'
    form['timestamp'] = '2006-11-16'
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert services.dump_topic_posts(topic) == '\n'.join([
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                         e-seimas.lrs.lt 2006-11-16 (0)',
    ])

    # Try to add same event second time
    resp = app.get(reverse('event-create', args=[topic.pk, topic.slug]), user=user)
    form = resp.forms['event-form']
    form['title'] = 'Balsavimo internetu koncepcijos patvirtinimas'
    form['source_link'] = 'https://e-seimas.lrs.lt/portal/legalAct/lt/TAD/TAIS.287235?positionInSearchResults=0&searchModelUUID=eaee1625-cf9f-46c0-931c-482a218029e8'
    form['timestamp'] = '2006-11-16'
    resp = form.submit()

    assert resp.status == '200 OK'
    assert resp.context['form'].errors.as_text() == '\n'.join([
        '* source_link',
        '  * Toks įvykis jau yra įtrauktas į „Balsavimas internetu“ temą.',
    ])
    assert services.dump_topic_posts(topic) == '\n'.join([
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                         e-seimas.lrs.lt 2006-11-16 (0)',
    ])
Exemplo n.º 7
0
def test_user_post_vote(app):
    user = factories.UserFactory()
    topic = factories.TopicFactory()
    event = factories.EventFactory()
    post = factories.PostFactory(topic=topic, content_object=event)

    # User upvotes a post
    resp = app.post(reverse('js:user-post-vote', args=[post.pk]), params={'vote': 1}, user=user)
    assert resp.json == {'success': True, 'upvotes': 1, 'downvotes': 0}
    assert services.dump_topic_posts(topic) == '\n'.join([
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                         e-seimas.lrs.lt 2016-03-22 (1)',
    ])

    # User downvotes same post
    resp = app.post(reverse('js:user-post-vote', args=[post.pk]), params={'vote': -1}, user=user)
    assert resp.json == {'success': True, 'upvotes': 0, 'downvotes': 1}
    assert services.dump_topic_posts(topic) == '\n'.join([
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                         e-seimas.lrs.lt 2016-03-22 (-1)',
    ])

    # User clears his vote
    resp = app.post(reverse('js:user-post-vote', args=[post.pk]), params={'vote': 0}, user=user)
    assert resp.json == {'success': True, 'upvotes': 0, 'downvotes': 0}
    assert services.dump_topic_posts(topic) == '\n'.join([
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                         e-seimas.lrs.lt 2016-03-22 (0)',
    ])
Exemplo n.º 8
0
def test_get_topic_posts(app):
    user = factories.UserFactory()
    topic = factories.TopicFactory()
    factories.TopicCuratorFactory(user=user, topic=topic)
    factories.create_topic_posts(topic, None, [
        ('event', 1, 0, 'Balsavimo internetu koncepcijos patvirtinimas',
         'lrs.lt', '2006-11-26'),
        ('quote', 'Mantas Adomėnas', 'seimo narys', 'kauno.diena.lt',
         '2016-03-22', [
             (1, 0,
              'Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.',
              [
                  (1, 'šiuolaikiška, modernu', True),
              ]),
             (0, 0,
              'Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.', [
                  (-1, 'balsų pirkimas', None),
              ]),
         ]),
    ])
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (1)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (0)',
        ' |      - (n) balsų pirkimas                                                                                ',
        ' |                                                                                                          ',
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                                  lrs.lt 2006-11-26 (1)',
    ])
Exemplo n.º 9
0
def test_update_with_same_quote(app):
    # This snippet allows to run tests without running slow migrations
    from django.db import connection
    cursor = connection.cursor()
    cursor.execute('CREATE EXTENSION IF NOT EXISTS pg_trgm')

    user = factories.UserFactory()
    topic = factories.TopicFactory()
    factories.TopicCuratorFactory(user=user, topic=topic)
    post, = factories.create_topic_posts(topic, user, [
        ('quote', 'Mantas Adomėnas', 'seimo narys', 'kauno.diena.lt', '2016-03-22', [
            (1, 0, 'Nepasiduokime paviršutiniškiems šūkiams.', [
                # position, argument, counterargument
                (1, 'šiuolaikiška, modernu', None),
            ]),
        ]),
    ])

    resp = app.get(reverse('quote-update', args=[post.pk]), user='******')
    form = resp.forms['quote-form']
    form['timestamp'] = '2016-04-04 16:34'
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (y) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-04-04    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams.                                                         (0)',
        ' |      - (y) šiuolaikiška, modernu                                                                         ',
    ])
Exemplo n.º 10
0
def test_curator_apply(app):
    user = factories.UserFactory(
        username='******',
        email='*****@*****.**',
        first_name='',
        last_name='',
    )
    topic = factories.TopicFactory()

    resp = app.get(reverse('curator-apply', args=[topic.pk, topic.slug]), user=user)
    form = resp.forms['curator-form']
    form['first_name'] = 'Vardenis'
    form['last_name'] = 'Pavardenis'
    form['title'] = 'visuomenės veikėjas'
    form['photo'] = Upload('my.jpg', factories.get_image_bytes())
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert models.Curator.objects.get(user=user).title == 'visuomenės veikėjas'
    assert services.dump_topic_posts(topic) == ''
    assert services.dump_topic_posts(topic, queue=True) == '\n'.join([
        '( ) Vardenis Pavardenis (visuomenės veikėjas)                                naujas temos kuratorius (0)',
    ])

    # A curator steps in and approves curator application
    post = models.Post.objects.order_by('pk').last()
    curator = factories.UserFactory(first_name='kuratorius')
    factories.TopicCuratorFactory(user=curator, topic=topic)
    resp = app.post(reverse('js:curator-post-vote', args=[post.pk]), params={'vote': 1}, user=curator)
    assert resp.json == {'success': True, 'upvotes': 1, 'downvotes': 0}
    assert services.dump_topic_posts(topic, queue=True) == ''

    # A new curator user tries to vote for his own curator application
    resp = app.post(reverse('js:curator-post-vote', args=[post.pk]), params={'vote': 1}, user=user)
    assert resp.json == {'success': False}
    assert services.dump_topic_posts(topic, queue=True) == ''

    # Another curator steps in and dissagrees with approval
    curator = factories.UserFactory(first_name='kuratorius 2')
    factories.TopicCuratorFactory(user=curator, topic=topic)
    resp = app.post(reverse('js:curator-post-vote', args=[post.pk]), params={'vote': -1}, user=curator)
    assert resp.json == {'success': True, 'upvotes': 1, 'downvotes': 1}
    assert services.dump_topic_posts(topic, queue=True) == '\n'.join([
        '( ) Vardenis Pavardenis (visuomenės veikėjas)                                naujas temos kuratorius (-1)',
    ])

    # A not curator user tries to vote for his curator application
    resp = app.post(reverse('js:curator-post-vote', args=[post.pk]), params={'vote': 1}, user=user)
    assert resp.json == {'success': False}
    assert services.dump_topic_posts(topic, queue=True) == '\n'.join([
        '( ) Vardenis Pavardenis (visuomenės veikėjas)                                naujas temos kuratorius (-1)',
    ])
Exemplo n.º 11
0
def test_curator_apply(app):
    user = factories.UserFactory(
        username='******',
        email='*****@*****.**',
        first_name='',
        last_name='',
    )
    topic = factories.TopicFactory()

    resp = app.get(reverse('curator-apply', args=[topic.pk, topic.slug]), user=user)
    form = resp.forms['curator-form']
    form['first_name'] = 'Vardenis'
    form['last_name'] = 'Pavardenis'
    form['title'] = 'visuomenės veikėjas'
    form['photo'] = Upload('my.jpg', factories.get_image_bytes())
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert models.Curator.objects.get(user=user).title == 'visuomenės veikėjas'
    assert services.dump_topic_posts(topic) == ''
    assert services.dump_topic_posts(topic, queue=True) == '\n'.join([
        '( ) Vardenis Pavardenis (visuomenės veikėjas)                                naujas temos kuratorius (0)',
    ])

    # A curator steps in and approves curator application
    post = models.Post.objects.order_by('pk').last()
    curator = factories.UserFactory(first_name='kuratorius')
    factories.TopicCuratorFactory(user=curator, topic=topic)
    resp = app.post(reverse('js:curator-post-vote', args=[post.pk]), {'vote': 1}, user=curator)
    assert resp.json == {'success': True, 'upvotes': 1, 'downvotes': 0}
    assert services.dump_topic_posts(topic, queue=True) == ''

    # A new curator user tries to vote for his own curator application
    resp = app.post(reverse('js:curator-post-vote', args=[post.pk]), {'vote': 1}, user=user)
    assert resp.json == {'success': False}
    assert services.dump_topic_posts(topic, queue=True) == ''

    # Another curator steps in and dissagrees with approval
    curator = factories.UserFactory(first_name='kuratorius 2')
    factories.TopicCuratorFactory(user=curator, topic=topic)
    resp = app.post(reverse('js:curator-post-vote', args=[post.pk]), {'vote': -1}, user=curator)
    assert resp.json == {'success': True, 'upvotes': 1, 'downvotes': 1}
    assert services.dump_topic_posts(topic, queue=True) == '\n'.join([
        '( ) Vardenis Pavardenis (visuomenės veikėjas)                                naujas temos kuratorius (-1)',
    ])

    # A not curator user tries to vote for his curator application
    resp = app.post(reverse('js:curator-post-vote', args=[post.pk]), {'vote': 1}, user=user)
    assert resp.json == {'success': False}
    assert services.dump_topic_posts(topic, queue=True) == '\n'.join([
        '( ) Vardenis Pavardenis (visuomenės veikėjas)                                naujas temos kuratorius (-1)',
    ])
Exemplo n.º 12
0
def test_update_with_same_quote(app):
    # This snippet allows to run tests without running slow migrations
    from django.db import connection
    cursor = connection.cursor()
    cursor.execute('CREATE EXTENSION IF NOT EXISTS pg_trgm')

    user = factories.UserFactory()
    topic = factories.TopicFactory()
    factories.TopicCuratorFactory(user=user, topic=topic)
    post, = factories.create_topic_posts(
        topic,
        user,
        [
            (
                'quote',
                'Mantas Adomėnas',
                'seimo narys',
                'kauno.diena.lt',
                '2016-03-22',
                [
                    (
                        1,
                        0,
                        'Nepasiduokime paviršutiniškiems šūkiams.',
                        [
                            # position, argument, counterargument
                            (1, 'šiuolaikiška, modernu', None),
                        ]),
                ]),
        ])

    resp = app.get(reverse('quote-update', args=[post.pk]), user='******')
    form = resp.forms['quote-form']
    form['timestamp'] = '2016-04-04 16:34'
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (y) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-04-04    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams.                                                         (0)',
        ' |      - (y) šiuolaikiška, modernu                                                                         ',
    ])
Exemplo n.º 13
0
def test_get_topic_posts(app):
    user = factories.UserFactory()
    topic = factories.TopicFactory()
    factories.TopicCuratorFactory(user=user, topic=topic)
    factories.create_topic_posts(topic, None, [
        ('event', 1, 0, 'Balsavimo internetu koncepcijos patvirtinimas', 'lrs.lt', '2006-11-26'),
        ('quote', 'Mantas Adomėnas', 'seimo narys', 'kauno.diena.lt', '2016-03-22', [
            (1, 0, 'Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.', [
                (1, 'šiuolaikiška, modernu', True),
            ]),
            (0, 0, 'Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.', [
                (-1, 'balsų pirkimas', None),
            ]),
        ]),
    ])
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (1)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (0)',
        ' |      - (n) balsų pirkimas                                                                                ',
        ' |                                                                                                          ',
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                                  lrs.lt 2006-11-26 (1)',
    ])
Exemplo n.º 14
0
def test_create_quote(app):
    # This snippet allows to run tests without running slow migrations
    from django.db import connection
    cursor = connection.cursor()
    cursor.execute('CREATE EXTENSION IF NOT EXISTS pg_trgm')

    user = factories.UserFactory()
    actor = factories.PersonActorFactory()
    topic = factories.TopicFactory()
    factories.TopicCuratorFactory(user=user, topic=topic)

    resp = app.get(reverse('quote-create', args=[topic.pk, topic.slug]), user='******')
    form = resp.forms['quote-form']
    form['actor'].force_value(actor.pk)
    form['source_link'] = 'http://kauno.diena.lt/naujienos/lietuva/politika/skinasi-kelia-balsavimas-internetu-740017'
    form['timestamp'] = '2016-03-22 16:34'
    form['text'] = 'Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.'
    form['form-0-title'] = 'šiuolaikiška, modernu'
    form['form-0-counterargument'] = True
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (0)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
    ])

    resp = app.get(reverse('quote-create', args=[topic.pk, topic.slug]), user='******')
    form = resp.forms['quote-form']
    form['actor'].force_value(actor.pk)
    form['source_link'] = 'http://kauno.diena.lt/naujienos/lietuva/politika/skinasi-kelia-balsavimas-internetu-740017'
    form['timestamp'] = '2016-03-22 16:34'
    form['text'] = 'Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.'
    form['form-0-title'] = 'balsų pirkimas'
    form['form-0-position'] = True
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (0)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (0)',
        ' |      - (n) balsų pirkimas                                                                                ',
    ])

    # Try to add similar quote from same author and from same source
    resp = app.get(reverse('quote-create', args=[topic.pk, topic.slug]), user='******')
    form = resp.forms['quote-form']
    form['actor'].force_value(actor.pk)
    form['source_link'] = 'http://kauno.diena.lt/naujienos/lietuva/politika/skinasi-kelia-balsavimas-internetu-740017'
    form['timestamp'] = '2016-03-22 16:34'
    form['text'] = 'Atidaroma nauja galimybė prekiauti balsais ir likti nebaudžiamam.'
    form['form-0-title'] = 'balsų pirkimas'
    form['form-0-position'] = True
    resp = form.submit()

    assert resp.status == '200 OK'
    assert resp.context['quote_form'].errors.as_text() == '\n'.join([
        '* text',
        '  * Toks komentaras jau yra įtrauktas į „Balsavimas internetu“ temą.',
    ])
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (0)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (0)',
        ' |      - (n) balsų pirkimas                                                                                ',
    ])

    # Try to update an existing quote
    quote = models.Quote.objects.get(text='Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.')
    post = models.Post.objects.get(topic=topic, quote=quote)
    resp = app.get(reverse('quote-update', args=[post.pk]), user='******')
    form = resp.forms['quote-form']
    form['timestamp'] = '2016-04-04 16:34'
    form['text'] = 'Pasiduokime paviršutiniškiems šūkiams.'
    form['form-0-counterargument'] = False
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (-) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-04-04    ',
        ' |      Pasiduokime paviršutiniškiems šūkiams.                                                           (0)',
        ' |      - (y) šiuolaikiška, modernu                                                                         ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (0)',
        ' |      - (n) balsų pirkimas                                                                                ',
    ])
Exemplo n.º 15
0
def test_compare_positions(app):
    user = factories.UserFactory()
    topic = factories.TopicFactory()
    factories.TopicCuratorFactory(user=user, topic=topic)

    # Fill topic with some content
    factories.create_topic_posts(topic, user, [
        ('event', 0, 1, 'Balsavimo internetu koncepcijos patvirtinimas',
         'lrs.lt', '2006-11-26'),
        ('quote', 'Mantas Adomėnas', 'seimo narys', 'kauno.diena.lt',
         '2016-03-22', [
             (1, 0,
              'Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.',
              [
                  (1, 'šiuolaikiška, modernu', True),
              ]),
             (1, 0,
              'Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.', [
                  (-1, 'balsų pirkimas', None),
              ]),
         ]),
        ('quote', 'Eligijus Masiulis', 'seimo narys', 'delfi.lt', '2015-10-08', [
            (0, 0,
             'Mes palaikysim tokį įstatymą, nes turime žengti į priekį ir reaguoti į XXI a. iššūkius.',
             [
                 (1, 'šiuolaikiška, modernu', None),
             ]),
        ]),
        ('quote', 'Juozas Bernatonis', 'seimo narys', 'delfi.lt', '2016-03-26', [
            (0, 1,
             'Žemas užsienio lietuvių aktyvumas susijęs su dalyvavimo rinkimuose sunkumais.',
             [
                 (1, 'didės užsienio lietuvių aktyvumas rinkimuose', None),
             ]),
        ]),
        ('quote', 'Mantas Adomėnas', 'seimo narys', '15min.lt', '2006-03-22', [
            (0, 0,
             'Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.',
             [
                 (1, 'šiuolaikiška, modernu', None),
             ]),
        ]),
    ])

    # Check topic was actually filled with correct data
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (y) Juozas Bernatonis (seimo narys)                                              delfi.lt 2016-03-26    ',
        ' |      Žemas užsienio lietuvių aktyvumas susijęs su dalyvavimo rinkimuose sunkumais.                   (-1)',
        ' |      - (y) didės užsienio lietuvių aktyvumas rinkimuose                                                  ',
        ' |                                                                                                          ',
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (1)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (1)',
        ' |      - (n) balsų pirkimas                                                                                ',
        ' |                                                                                                          ',
        '( ) (y) Eligijus Masiulis (seimo narys)                                              delfi.lt 2015-10-08    ',
        ' |      Mes palaikysim tokį įstatymą, nes turime žengti į priekį ir reaguoti į XXI a. iššūkius.          (0)',
        ' |      - (y) šiuolaikiška, modernu                                                                         ',
        ' |                                                                                                          ',
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                                  lrs.lt 2006-11-26 (-1)',
        ' |                                                                                                          ',
        '( ) (y) Mantas Adomėnas (seimo narys)                                                15min.lt 2006-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (0)',
        ' |      - (y) šiuolaikiška, modernu                                                                         ',
    ])

    mantas_adomenas = models.Actor.objects.get(first_name='Mantas',
                                               last_name='Adomėnas').pk
    eligijus_masiulis = models.Actor.objects.get(first_name='Eligijus',
                                                 last_name='Masiulis').pk

    group = factories.GroupFactory(
        members=[mantas_adomenas, eligijus_masiulis])

    # Check list of actor and user positions for quotes
    assert list(services.get_user_quote_positions(group, user)) == [
        (mantas_adomenas, -1.0, 1),
        (mantas_adomenas, -1.0, 1),
        (eligijus_masiulis, 1.0, 0),
        (mantas_adomenas, 1.0, 0),
    ]

    # Check list of actor and user positions for arguments
    assert list(services.get_user_argument_positions(group, user)) == [
        ('balsų pirkimas', mantas_adomenas, -1.0, -1.0),
        ('šiuolaikiška, modernu', mantas_adomenas, 0, -1.0),
        ('šiuolaikiška, modernu', eligijus_masiulis, 1.0, -1.0),
    ]

    # Check list of actor and user positions for events
    assert list(services.get_user_event_positions(group, user)) == []

    # Finally check if position comparison works
    assert services.compare_positions(group, user) == [
        (mantas_adomenas, 0.125),
        (eligijus_masiulis, 1.0),
    ]
Exemplo n.º 16
0
def test_create_quote(app):
    # This snippet allows to run tests without running slow migrations
    from django.db import connection
    cursor = connection.cursor()
    cursor.execute('CREATE EXTENSION IF NOT EXISTS pg_trgm')

    user = factories.UserFactory()
    actor = factories.PersonActorFactory()
    topic = factories.TopicFactory()
    factories.TopicCuratorFactory(user=user, topic=topic)

    resp = app.get(reverse('quote-create', args=[topic.pk, topic.slug]), user='******')
    form = resp.forms['quote-form']
    form['actor'].force_value(actor.pk)
    form['source_link'] = 'http://kauno.diena.lt/naujienos/lietuva/politika/skinasi-kelia-balsavimas-internetu-740017'
    form['timestamp'] = '2016-03-22 16:34'
    form['text'] = 'Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.'
    form['form-0-title'] = 'šiuolaikiška, modernu'
    form['form-0-counterargument'] = True
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (0)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
    ])

    resp = app.get(reverse('quote-create', args=[topic.pk, topic.slug]), user='******')
    form = resp.forms['quote-form']
    form['actor'].force_value(actor.pk)
    form['source_link'] = 'http://kauno.diena.lt/naujienos/lietuva/politika/skinasi-kelia-balsavimas-internetu-740017'
    form['timestamp'] = '2016-03-22 16:34'
    form['text'] = 'Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.'
    form['form-0-title'] = 'balsų pirkimas'
    form['form-0-position'] = True
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (0)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (0)',
        ' |      - (n) balsų pirkimas                                                                                ',
    ])

    # Try to add similar quote from same author and from same source
    resp = app.get(reverse('quote-create', args=[topic.pk, topic.slug]), user='******')
    form = resp.forms['quote-form']
    form['actor'].force_value(actor.pk)
    form['source_link'] = 'http://kauno.diena.lt/naujienos/lietuva/politika/skinasi-kelia-balsavimas-internetu-740017'
    form['timestamp'] = '2016-03-22 16:34'
    form['text'] = 'Atidaroma nauja galimybė prekiauti balsais ir likti nebaudžiamam.'
    form['form-0-title'] = 'balsų pirkimas'
    form['form-0-position'] = True
    resp = form.submit()

    assert resp.status == '200 OK'
    assert resp.context['quote_form'].errors.as_text() == '\n'.join([
        '* text',
        '  * Toks komentaras jau yra įtrauktas į „Balsavimas internetu“ temą.',
    ])
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (0)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (0)',
        ' |      - (n) balsų pirkimas                                                                                ',
    ])

    # Try to update an existing quote
    quote = models.Quote.objects.get(text='Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.')
    post = models.Post.objects.get(topic=topic, quote=quote)
    resp = app.get(reverse('quote-update', args=[post.pk]), user='******')
    form = resp.forms['quote-form']
    form['timestamp'] = '2016-04-04 16:34'
    form['text'] = 'Pasiduokime paviršutiniškiems šūkiams.'
    form['form-0-counterargument'] = False
    resp = form.submit()

    assert resp.status == '302 Found'
    assert resp.headers['location'] == topic.get_absolute_url()
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (-) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-04-04    ',
        ' |      Pasiduokime paviršutiniškiems šūkiams.                                                           (0)',
        ' |      - (y) šiuolaikiška, modernu                                                                         ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (0)',
        ' |      - (n) balsų pirkimas                                                                                ',
    ])
Exemplo n.º 17
0
def test_compare_positions(app):
    user = factories.UserFactory()
    topic = factories.TopicFactory()
    factories.TopicCuratorFactory(user=user, topic=topic)

    # Fill topic with some content
    factories.create_topic_posts(topic, user, [
        ('event', 0, 1, 'Balsavimo internetu koncepcijos patvirtinimas', 'lrs.lt', '2006-11-26'),
        ('quote', 'Mantas Adomėnas', 'seimo narys', 'kauno.diena.lt', '2016-03-22', [
            (1, 0, 'Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.', [
                (1, 'šiuolaikiška, modernu', True),
            ]),
            (1, 0, 'Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.', [
                (-1, 'balsų pirkimas', None),
            ]),
        ]),
        ('quote', 'Eligijus Masiulis', 'seimo narys', 'delfi.lt', '2015-10-08', [
            (0, 0, 'Mes palaikysim tokį įstatymą, nes turime žengti į priekį ir reaguoti į XXI a. iššūkius.', [
                (1, 'šiuolaikiška, modernu', None),
            ]),
        ]),
        ('quote', 'Juozas Bernatonis', 'seimo narys', 'delfi.lt', '2016-03-26', [
            (0, 1, 'Žemas užsienio lietuvių aktyvumas susijęs su dalyvavimo rinkimuose sunkumais.', [
                (1, 'didės užsienio lietuvių aktyvumas rinkimuose', None),
            ]),
        ]),
        ('quote', 'Mantas Adomėnas', 'seimo narys', '15min.lt', '2006-03-22', [
            (0, 0, 'Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.', [
                (1, 'šiuolaikiška, modernu', None),
            ]),
        ]),
    ])

    # Check topic was actually filled with correct data
    assert services.dump_topic_posts(topic) == '\n'.join([
        '( ) (y) Juozas Bernatonis (seimo narys)                                              delfi.lt 2016-03-26    ',
        ' |      Žemas užsienio lietuvių aktyvumas susijęs su dalyvavimo rinkimuose sunkumais.                   (-1)',
        ' |      - (y) didės užsienio lietuvių aktyvumas rinkimuose                                                  ',
        ' |                                                                                                          ',
        '( ) (n) Mantas Adomėnas (seimo narys)                                          kauno.diena.lt 2016-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (1)',
        ' |      - (y) šiuolaikiška, modernu < (counterargument)                                                     ',
        ' |      Atidaroma galimybė prekiauti balsais ir likti nebaudžiamam.                                      (1)',
        ' |      - (n) balsų pirkimas                                                                                ',
        ' |                                                                                                          ',
        '( ) (y) Eligijus Masiulis (seimo narys)                                              delfi.lt 2015-10-08    ',
        ' |      Mes palaikysim tokį įstatymą, nes turime žengti į priekį ir reaguoti į XXI a. iššūkius.          (0)',
        ' |      - (y) šiuolaikiška, modernu                                                                         ',
        ' |                                                                                                          ',
        ' o  (-) Balsavimo internetu koncepcijos patvirtinimas                                  lrs.lt 2006-11-26 (-1)',
        ' |                                                                                                          ',
        '( ) (y) Mantas Adomėnas (seimo narys)                                                15min.lt 2006-03-22    ',
        ' |      Nepasiduokime paviršutiniškiems šūkiams – šiuolaikiška, modernu.                                 (0)',
        ' |      - (y) šiuolaikiška, modernu                                                                         ',
    ])

    mantas_adomenas = models.Actor.objects.get(first_name='Mantas', last_name='Adomėnas').pk
    eligijus_masiulis = models.Actor.objects.get(first_name='Eligijus', last_name='Masiulis').pk

    group = factories.GroupFactory(members=[mantas_adomenas, eligijus_masiulis])

    # Check list of actor and user positions for quotes
    assert list(services.get_user_quote_positions(group, user)) == [
        (mantas_adomenas, -1.0, 1),
        (mantas_adomenas, -1.0, 1),
        (eligijus_masiulis, 1.0, 0),
        (mantas_adomenas, 1.0, 0),
    ]

    # Check list of actor and user positions for arguments
    assert list(services.get_user_argument_positions(group, user)) == [
        ('balsų pirkimas', mantas_adomenas, -1.0, -1.0),
        ('šiuolaikiška, modernu', mantas_adomenas, 0, -1.0),
        ('šiuolaikiška, modernu', eligijus_masiulis, 1.0, -1.0),
    ]

    # Check list of actor and user positions for events
    assert list(services.get_user_event_positions(group, user)) == [
    ]

    # Finally check if position comparison works
    assert services.compare_positions(group, user) == [
        (mantas_adomenas, 0.125),
        (eligijus_masiulis, 1.0),
    ]