Exemple #1
0
def test_subreddit_submit(SubmitWindow):
    api = MagicMock()
    root = aboutrow.get_about_row(api, '/r/linux')

    find_widget(root, label='Submit', kind=Gtk.Button).emit('clicked')
    wait_for(lambda: SubmitWindow.called)
    SubmitWindow.assert_called_with(api, sub='linux')
def test_reply_palette(datadir):
    api = MagicMock()
    toplevel_cv = MagicMock()
    with open(datadir / 'posttopbar--comment.json') as f:
        data = json.load(f)

    bar = posttopbar.PostTopBar(api, data, toplevel_cv)
    bar.get_toplevel = lambda: api
    poproot = Gtk.Popover()
    with patch('gi.repository.Gtk.Popover') as Popover:
        Popover.return_value = poproot
        bar.do_event(fake_event('r'))

        wait_for(lambda: Popover.called)

    assert poproot.props.visible
    tv = find_widget(poproot, kind=Gtk.TextView)
    tv.props.buffer.set_text('hello')

    btn = find_widget(poproot, kind=Gtk.Button, label='Post Reply')
    btn.emit('clicked')
    wait_for(lambda: btn.props.sensitive is False)
    (name, text, cb), _ = api.reply.call_args
    assert name == 't1_e9nhj7n'
    assert text == 'hello'

    cb({'json': {'data': {'things': [{'data': {'id': 'MYID'}}]}}})
    assert poproot.props.visible == False
def test_reply_palette(datadir):
    api = MagicMock()
    toplevel_cv = MagicMock()
    with open(datadir / 'posttopbar--comment.json') as f:
        data = json.load(f)

    bar = posttopbar.PostTopBar(api, data, toplevel_cv)
    bar.get_toplevel = lambda: api
    poproot = Gtk.Popover()
    with patch('gi.repository.Gtk.Popover') as Popover:
        Popover.return_value = poproot
        bar.do_event(fake_event('r'))

        wait_for(lambda: Popover.called)

    assert poproot.props.visible
    tv = find_widget(poproot, kind=Gtk.TextView)
    tv.props.buffer.set_text('hello')

    btn = find_widget(poproot, kind=Gtk.Button, label='Post Reply')
    btn.emit('clicked')
    wait_for(lambda: btn.props.sensitive is False)
    (name, text, cb), _ = api.reply.call_args
    assert name == 't1_e9nhj7n'
    assert text == 'hello'

    cb({'json': {'data': {'things': [{'data': {'id': 'MYID'}}]}}})
    assert poproot.props.visible == False
def test_subreddit_submit(SubmitWindow):
        api = MagicMock()
        root = aboutrow.get_about_row(api, '/r/linux')

        find_widget(root, label='Submit', kind=Gtk.Button).emit('clicked')
        wait_for(lambda: SubmitWindow.called)
        SubmitWindow.assert_called_with(api, sub='linux')
def test_message_row_pm(json_loader):
    api = MagicMock()
    row = sublistrows.MessageRow(api, json_loader('sublistrows--pm'))

    assert find_widget(row, label='re: Blog down')
    assert find_widget(row, label='thanks a lot!')
    # author:
    assert find_widget(row, label='bambambazooka', kind=Gtk.Button)
Exemple #6
0
def test_message_row_pm(json_loader):
    api = MagicMock()
    row = sublistrows.MessageRow(api, json_loader('sublistrows--pm'))

    assert find_widget(row, label='re: Blog down')
    assert find_widget(row, label='thanks a lot!')
    # author:
    assert find_widget(row, label='bambambazooka', kind=Gtk.Button)
def test_subreddit_subscribe_button_initial_state():
    api = MagicMock()
    api.lower_user_subs = ['/r/sub/']

    root = aboutrow.get_about_row(api, '/r/linux')
    find_widget(root, label='Subscribe', kind=Gtk.Button)

    root = aboutrow.get_about_row(api, '/r/sub')
    find_widget(root, label='Subscribed', kind=Gtk.Button)
Exemple #8
0
def test_subreddit_subscribe_button_initial_state():
    api = MagicMock()
    api.lower_user_subs = ['/r/sub/']

    root = aboutrow.get_about_row(api, '/r/linux')
    find_widget(root, label='Subscribe', kind=Gtk.Button)

    root = aboutrow.get_about_row(api, '/r/sub')
    find_widget(root, label='Subscribed', kind=Gtk.Button)
Exemple #9
0
def test_button_shows_name():
    ic = MagicMock()
    ic.active_token.user_name = 'UN1'

    btn = identitybutton.IdentityButton(ic)
    assert find_widget(btn, label='UN1', kind=Gtk.Button)

    (cb, ), _ = ic.token_changed.connect.call_args
    ic.active_token.user_name = 'UN2'
    cb(ic)
    assert find_widget(btn, label='UN2', kind=Gtk.Button)
def test_button_shows_name():
    ic = MagicMock()
    ic.active_token.user_name = 'UN1'

    btn = identitybutton.IdentityButton(ic)
    assert find_widget(btn, label='UN1', kind=Gtk.Button)

    (cb,), _ = ic.token_changed.connect.call_args
    ic.active_token.user_name = 'UN2'
    cb(ic)
    assert find_widget(btn, label='UN2', kind=Gtk.Button)
def test_submit_empty():
    api = MagicMock()
    window = submit.SubmitWindow(api)
    root = window.window

    submit_button = find_widget(root, label='Submit', kind=Gtk.Button)
    submit_button.emit('clicked')

    wait_for(lambda: api.submit.called)

    loading = find_widget(root, label='Submitting...', kind=Gtk.Button)
    assert loading.props.sensitive == False
def test_submit_empty():
    api = MagicMock()
    window = submit.SubmitWindow(api)
    root = window.window

    submit_button = find_widget(root, label='Submit', kind=Gtk.Button)
    submit_button.emit('clicked')

    wait_for(lambda: api.submit.called)

    loading = find_widget(root, label='Submitting...', kind=Gtk.Button)
    assert loading.props.sensitive == False
def test_user_about_row():
    api = MagicMock()
    root = aboutrow.get_about_row(api, '/u/bob')

    assert find_widget(root, label='bob')

    wait_for(lambda: api.get_user_info.called)
    (name, cb), _ = api.get_user_info.call_args
    assert name == 'bob'
    cb({'data': {'link_karma': 2, 'comment_karma': 1}})

    assert find_widget(root, label='2l / 1c')
Exemple #14
0
def test_user_about_row():
    api = MagicMock()
    root = aboutrow.get_about_row(api, '/u/bob')

    assert find_widget(root, label='bob')

    wait_for(lambda: api.get_user_info.called)
    (name, cb), _ = api.get_user_info.call_args
    assert name == 'bob'
    cb({'data': {'link_karma': 2, 'comment_karma': 1}})

    assert find_widget(root, label='2l / 1c')
Exemple #15
0
def test_subreddit_subscribe_button_toggle():
    api = MagicMock()
    root = aboutrow.get_about_row(api, '/r/linux')
    btn = find_widget(root, label='Subscribe', kind=Gtk.Button)
    btn.emit('clicked')

    wait_for(lambda: api.set_subscribed.called)
    (name, active, cb), _ = api.set_subscribed.call_args
    assert name == 'linux'
    assert active == True

    cb(None)
    assert btn == find_widget(root, label='Subscribed', kind=Gtk.Button)
def test_subreddit_subscribe_button_toggle():
    api = MagicMock()
    root = aboutrow.get_about_row(api, '/r/linux')
    btn = find_widget(root, label='Subscribe', kind=Gtk.Button)
    btn.emit('clicked')

    wait_for(lambda: api.set_subscribed.called)
    (name, active, cb), _ = api.set_subscribed.call_args
    assert name == 'linux'
    assert active == True
    
    cb(None)
    assert btn == find_widget(root, label='Subscribed', kind=Gtk.Button)
def test_for_comment(datadir):
    api = MagicMock()
    toplevel_cv = MagicMock()

    with open(datadir / 'posttopbar--comment.json') as f:
        data = json.load(f)

    bar = posttopbar.PostTopBar(api, data, toplevel_cv)
    # author
    assert find_widget(bar, label='andnbspsc', kind=Gtk.Button)
    # score
    assert find_widget(bar, label='score hidden', kind=Gtk.Button)
    # no subreddit
    assert not find_widget(bar, label='linux', many=True)
def test_for_post(datadir):
    api = MagicMock()
    toplevel_cv = MagicMock()

    with open(datadir / 'posttopbar--post.json') as f:
        data = json.load(f)

    bar = posttopbar.PostTopBar(api, data, toplevel_cv, show_subreddit=True)
    # author
    assert find_widget(bar, label='sandragen', kind=Gtk.Button)
    # score
    assert find_widget(bar, label='score hidden', kind=Gtk.Button)
    # subreddit
    assert find_widget(bar, label='linux', many=True)
def test_for_comment(datadir):
    api = MagicMock()
    toplevel_cv = MagicMock()

    with open(datadir / 'posttopbar--comment.json') as f:
        data = json.load(f)

    bar = posttopbar.PostTopBar(api, data, toplevel_cv)
    # author
    assert find_widget(bar, label='andnbspsc', kind=Gtk.Button)
    # score 
    assert find_widget(bar, label='score hidden', kind=Gtk.Button)
    # no subreddit
    assert not find_widget(bar, label='linux', many=True)
def test_for_post(datadir):
    api = MagicMock()
    toplevel_cv = MagicMock()

    with open(datadir / 'posttopbar--post.json') as f:
        data = json.load(f)

    bar = posttopbar.PostTopBar(api, data, toplevel_cv, show_subreddit=True)
    # author
    assert find_widget(bar, label='sandragen', kind=Gtk.Button)
    # score
    assert find_widget(bar, label='score hidden', kind=Gtk.Button)
    # subreddit
    assert find_widget(bar, label='linux', many=True)
def test_subentry_palette_activate():
    api = MagicMock()
    api.user_name = 'username'
    root = subentry.SubEntry(api)
    root.activate = MagicMock()

    down_button = find_widget(root, kind=Gtk.Button)
    down_button.emit('clicked')
    poproot = root._palette  # err IDK about this
    wait_for(lambda: poproot.props.visible)

    btn = find_widget(
            poproot, label='/user/username/submitted', kind=Gtk.Button)
    btn.emit('clicked')
    wait_for(lambda: root.activate.emit.called)
    assert root.activate.emit.call_args[0][0] == '/user/username/submitted'
def test_subreddit_info():
    api = MagicMock()
    root = aboutrow.get_about_row(api, '/r/linux')

    expander = find_widget(root, kind=Gtk.Expander)
    expander.activate()
    wait_for(lambda: api.get_subreddit_info.called)

    (name, cb), _ = api.get_subreddit_info.call_args
    assert name == 'linux'
    cb({'data': {'description': 'hello'}})

    assert find_widget(root, label='hello').props.visible == True

    expander.activate()
    expander.activate()
    assert api.get_subreddit_info.call_count == 1
Exemple #23
0
def test_subentry_palette_activate():
    api = MagicMock()
    api.user_name = 'username'
    root = subentry.SubEntry(api)
    root.activate = MagicMock()

    down_button = find_widget(root, kind=Gtk.Button)
    down_button.emit('clicked')
    poproot = root._palette  # err IDK about this
    wait_for(lambda: poproot.props.visible)

    btn = find_widget(poproot,
                      label='/user/username/submitted',
                      kind=Gtk.Button)
    btn.emit('clicked')
    wait_for(lambda: root.activate.emit.called)
    assert root.activate.emit.call_args[0][0] == '/user/username/submitted'
def test_load_selftext(datadir):
    api = MagicMock()

    root = comments.CommentsView(api, permalink=PERMALINK)
    assert find_widget(root, kind=Gtk.Spinner)

    (method, link, cb), _ = api.send_request.call_args
    assert method == 'GET'
    assert link == PERMALINK

    with open(datadir / 'comments--thread.json') as f:
        cb(json.load(f))

    # Title:
    assert find_widget(root, label='You need a doctor’s note? You got it!')
    # Body:
    assert find_widget(root, label='This happened today.')
Exemple #25
0
def test_subreddit_info():
    api = MagicMock()
    root = aboutrow.get_about_row(api, '/r/linux')

    expander = find_widget(root, kind=Gtk.Expander)
    expander.activate()
    wait_for(lambda: api.get_subreddit_info.called)

    (name, cb), _ = api.get_subreddit_info.call_args
    assert name == 'linux'
    cb({'data': {'description': 'hello'}})

    assert find_widget(root, label='hello').props.visible == True

    expander.activate()
    expander.activate()
    assert api.get_subreddit_info.call_count == 1
def test_submit_link():
    api = MagicMock()
    window = submit.SubmitWindow(api)
    root = window.window

    find_widget(root, placeholder='Title').props.text = 'Some Title'
    find_widget(root, placeholder='Link').props.text = 'example.com'
    find_widget(root, placeholder='Subreddit').props.text = 'test'
    find_widget(root, label='Submit', kind=Gtk.Button).emit('clicked')

    wait_for(lambda: api.submit.called)
    (data, cb), _ = api.submit.call_args
    assert data == {
        'kind': 'link',
        'sr': 'test',
        'title': 'Some Title',
        'url': 'example.com',
    }
def test_submit_error(datadir):
    api = MagicMock()
    window = submit.SubmitWindow(api)
    root = window.window

    submit_button = find_widget(root, label='Submit', kind=Gtk.Button)
    submit_button.emit('clicked')
    wait_for(lambda: api.submit.called)
    (data, callback), _ = api.submit.call_args

    with open(datadir / 'submit--ratelimit-response.json') as f:
        data = json.load(f)
        msg = data['json']['errors'][0][1]
        callback(data)

    assert submit_button.props.sensitive
    label = find_widget(root, label=msg)
    assert label.props.visible
def test_submit_link():
    api = MagicMock()
    window = submit.SubmitWindow(api)
    root = window.window

    find_widget(root, placeholder='Title').props.text = 'Some Title'
    find_widget(root, placeholder='Link').props.text = 'example.com'
    find_widget(root, placeholder='Subreddit').props.text = 'test'
    find_widget(root, label='Submit', kind=Gtk.Button).emit('clicked')

    wait_for(lambda: api.submit.called)
    (data, cb), _ = api.submit.call_args
    assert data == {
        'kind': 'link',
        'sr': 'test',
        'title': 'Some Title',
        'url': 'example.com',
    }
def test_submit_error(datadir):
    api = MagicMock()
    window = submit.SubmitWindow(api)
    root = window.window

    submit_button = find_widget(root, label='Submit', kind=Gtk.Button)
    submit_button.emit('clicked')
    wait_for(lambda: api.submit.called)
    (data, callback), _ = api.submit.call_args

    with open(datadir / 'submit--ratelimit-response.json') as f:
        data = json.load(f)
        msg = data['json']['errors'][0][1]
        callback(data)

    assert submit_button.props.sensitive
    label = find_widget(root, label=msg)
    assert label.props.visible
def test_subentry_palette_subreddits():
    api = MagicMock()
    api.user_name = 'username'
    api.user_subs = ['/r/linux']
    root = subentry.SubEntry(api)

    down_button = find_widget(root, kind=Gtk.Button)
    down_button.emit('clicked')
    poproot = root._palette  # err IDK about this
    wait_for(lambda: poproot.props.visible)

    assert find_widget(poproot, label='/r/linux', many=True)
    assert not find_widget(poproot, label='/r/gnu', many=True)

    api.user_subs = ['/r/gnu']
    (cb,), _ = api.subs_changed.connect.call_args
    cb(api)
    assert not find_widget(poproot, label='/r/linux', many=True)
    assert find_widget(poproot, label='/r/gnu', many=True)
Exemple #31
0
def test_subentry_palette_subreddits():
    api = MagicMock()
    api.user_name = 'username'
    api.user_subs = ['/r/linux']
    root = subentry.SubEntry(api)

    down_button = find_widget(root, kind=Gtk.Button)
    down_button.emit('clicked')
    poproot = root._palette  # err IDK about this
    wait_for(lambda: poproot.props.visible)

    assert find_widget(poproot, label='/r/linux', many=True)
    assert not find_widget(poproot, label='/r/gnu', many=True)

    api.user_subs = ['/r/gnu']
    (cb, ), _ = api.subs_changed.connect.call_args
    cb(api)
    assert not find_widget(poproot, label='/r/linux', many=True)
    assert find_widget(poproot, label='/r/gnu', many=True)
def test_link():
    widget = newmarkdown.make_markdown_widget('/r/linux')
    assert_matches_snapshot('newmarkdown--link--r', snapshot_widget(widget))

    cb = MagicMock()
    label = find_widget(widget, label='<a href="/r/linux">/r/linux</a>')
    label.get_toplevel().load_uri_from_label = cb

    label.emit('activate-link', '/r/linux')
    assert cb.called
    (link,), _ = cb.call_args
    assert link == '/r/linux'
def test_subentry_open_uri():
    api = MagicMock()
    api.user_name = 'username'
    root = subentry.SubEntry(api)
    toplevel = MagicMock()

    entry = find_widget(root, kind=Gtk.Entry)
    # err IDK about this
    entry.is_focus = lambda: True
    entry.props.text = 'https://reddit.com/r/yes'

    poproot = root._palette  # err IDK about this
    poproot.get_toplevel = lambda: toplevel
    wait_for(lambda: poproot.props.visible)

    btn = find_widget(poproot, label='Open this reddit.com URI',
                      kind=Gtk.Button)
    btn.emit('clicked')
    wait_for(lambda: toplevel.goto_reddit_uri.called)
    toplevel.goto_reddit_uri.assert_called_once_with(
        'https://reddit.com/r/yes')
def test_subentry_palette_subreddits_filter():
    api = MagicMock()
    api.user_name = 'username'
    api.user_subs = ['/r/linux', '/r/gnu']
    root = subentry.SubEntry(api)
    poproot = root._palette  # err IDK about this

    entry = find_widget(root, kind=Gtk.Entry)
    entry.props.text = '/r/l'


    # When using the button, all should be visible
    down_button = find_widget(root, kind=Gtk.Button)
    down_button.emit('clicked')
    wait_for(lambda: poproot.props.visible)

    assert find_widget(poproot, label='/r/linux', many=True)
    assert find_widget(poproot, label='/r/gnu', many=True)

    # err IDK about this
    entry.is_focus = lambda: True
    entry.props.text = '/r/li'
    wait_for(lambda: poproot.props.visible)

    assert find_widget(poproot, label='/r/linux', many=True)
    assert not find_widget(poproot, label='/r/gnu', many=True)
Exemple #35
0
def test_subentry_palette_subreddits_filter():
    api = MagicMock()
    api.user_name = 'username'
    api.user_subs = ['/r/linux', '/r/gnu']
    root = subentry.SubEntry(api)
    poproot = root._palette  # err IDK about this

    entry = find_widget(root, kind=Gtk.Entry)
    entry.props.text = '/r/l'

    # When using the button, all should be visible
    down_button = find_widget(root, kind=Gtk.Button)
    down_button.emit('clicked')
    wait_for(lambda: poproot.props.visible)

    assert find_widget(poproot, label='/r/linux', many=True)
    assert find_widget(poproot, label='/r/gnu', many=True)

    # err IDK about this
    entry.is_focus = lambda: True
    entry.props.text = '/r/li'
    wait_for(lambda: poproot.props.visible)

    assert find_widget(poproot, label='/r/linux', many=True)
    assert not find_widget(poproot, label='/r/gnu', many=True)
Exemple #36
0
def test_sublist_create(get_about_row):
    api = MagicMock()
    root = sublist.SubList(api, '/r/linux')

    assert find_widget(root, kind=Gtk.Spinner)
    assert root.get_uri() == '/r/linux'

    (sub, cb), _ = api.get_list.call_args
    assert sub == '/r/linux'
    data = {
        'data': {
            'children': [
                {
                    'kind': 't1',
                    'win': 1
                },
                {
                    'kind': 't3',
                    'win': 1
                },
            ],
            'after': 'win',
        },
    }
    # Load the data
    cb(data)
    assert not find_widget(root, kind=Gtk.Spinner, many=True)

    get_about_row.assert_called_with(api, '/r/linux')
    assert find_widget(root, label='about row', kind=Gtk.Label)
    assert find_widget(root, kind=FixtureMessageRow)
    assert find_widget(root, kind=FixtureLinkRow)
    assert find_widget(root, kind=FixtureMoreItemsRow)
def test_sublist_create(get_about_row):
    api = MagicMock()
    root = sublist.SubList(api, '/r/linux')

    assert find_widget(root, kind=Gtk.Spinner)
    assert root.get_uri() == '/r/linux'

    (sub, cb), _ = api.get_list.call_args
    assert sub == '/r/linux'
    data = {
        'data': {
            'children': [
                {'kind': 't1', 'win': 1},
                {'kind': 't3', 'win': 1},
            ],
            'after': 'win',
        },
    }
    # Load the data
    cb(data)
    assert not find_widget(root, kind=Gtk.Spinner, many=True)

    get_about_row.assert_called_with(api, '/r/linux')
    assert find_widget(root, label='about row', kind=Gtk.Label)
    assert find_widget(root, kind=FixtureMessageRow)
    assert find_widget(root, kind=FixtureLinkRow)
    assert find_widget(root, kind=FixtureMoreItemsRow)
Exemple #38
0
def test_subentry_open_uri():
    api = MagicMock()
    api.user_name = 'username'
    root = subentry.SubEntry(api)
    toplevel = MagicMock()

    entry = find_widget(root, kind=Gtk.Entry)
    # err IDK about this
    entry.is_focus = lambda: True
    entry.props.text = 'https://reddit.com/r/yes'

    poproot = root._palette  # err IDK about this
    poproot.get_toplevel = lambda: toplevel
    wait_for(lambda: poproot.props.visible)

    btn = find_widget(poproot,
                      label='Open this reddit.com URI',
                      kind=Gtk.Button)
    btn.emit('clicked')
    wait_for(lambda: toplevel.goto_reddit_uri.called)
    toplevel.goto_reddit_uri.assert_called_once_with(
        'https://reddit.com/r/yes')
def test_submit_good(datadir):
    api = MagicMock()
    window = submit.SubmitWindow(api)
    window.done = MagicMock()
    root = window.window

    submit_button = find_widget(root, label='Submit', kind=Gtk.Button)
    submit_button.emit('clicked')
    wait_for(lambda: api.submit.called)
    (data, callback), _ = api.submit.call_args

    with open(datadir / 'submit--good-response.json') as f:
        callback(json.load(f))

    assert window.done.emit.called
    (sub, uri), _ = window.done.emit.call_args
    assert uri == 'https://www.reddit.com/r/test/comments/9teb69/test/'
def test_submit_good(datadir):
    api = MagicMock()
    window = submit.SubmitWindow(api)
    window.done = MagicMock()
    root = window.window

    submit_button = find_widget(root, label='Submit', kind=Gtk.Button)
    submit_button.emit('clicked')
    wait_for(lambda: api.submit.called)
    (data, callback), _ = api.submit.call_args

    with open(datadir / 'submit--good-response.json') as f:
        callback(json.load(f))

    assert window.done.emit.called
    (sub, uri), _ = window.done.emit.call_args
    assert uri == 'https://www.reddit.com/r/test/comments/9teb69/test/'
Exemple #41
0
def test_popover_lists_accounts():
    ic = MagicMock()
    ic.all_tokens = [(1, MagicMock(user_name='user name 1')),
                     (2, MagicMock(user_name='user name 2'))]

    popover = identitybutton._IdentityPopover(ic)
    assert find_widget(popover, label='Anonymous')
    assert find_widget(popover, label='user name 1')
    assert find_widget(popover, label='user name 2')

    ic.all_tokens = [(1, MagicMock(user_name='user name 1 new'))]
    (cb, ), _ = ic.token_changed.connect.call_args
    cb(ic)
    assert find_widget(popover, label='Anonymous')
    assert find_widget(popover, label='user name 1 new')
    assert find_widget(popover, label='user name 2', many=True) == []
    assert find_widget(popover, label='user name 1', many=True) == []
def test_popover_lists_accounts():
    ic = MagicMock()
    ic.all_tokens = [
            (1, MagicMock(user_name='user name 1')),
            (2, MagicMock(user_name='user name 2'))]

    popover = identitybutton._IdentityPopover(ic)
    assert find_widget(popover, label='Anonymous')
    assert find_widget(popover, label='user name 1')
    assert find_widget(popover, label='user name 2')

    ic.all_tokens = [(1, MagicMock(user_name='user name 1 new'))]
    (cb,), _ = ic.token_changed.connect.call_args
    cb(ic)
    assert find_widget(popover, label='Anonymous')
    assert find_widget(popover, label='user name 1 new')
    assert find_widget(popover, label='user name 2', many=True) == []
    assert find_widget(popover, label='user name 1', many=True) == []
def test_submit_self():
    api = MagicMock()
    window = submit.SubmitWindow(api)
    root = window.window

    self_post = find_widget(root, kind=Gtk.Button, label='Self Post')
    self_post.props.active = True
    stack = find_widget(root, kind=Gtk.Stack)
    wait_for(lambda: stack.props.visible_child_name == 'self')

    find_widget(root, placeholder='Title').props.text = 'Some Title'
    find_widget(root, kind=Gtk.TextView).props.buffer.set_text('self')
    find_widget(root, placeholder='Subreddit').props.text = 'test'
    find_widget(root, label='Submit', kind=Gtk.Button).emit('clicked')

    wait_for(lambda: api.submit.called)
    (data, cb), _ = api.submit.call_args
    assert data == {
        'kind': 'self',
        'sr': 'test',
        'title': 'Some Title',
        'text': 'self',
    }
def test_submit_self():
    api = MagicMock()
    window = submit.SubmitWindow(api)
    root = window.window

    self_post = find_widget(root, kind=Gtk.Button, label='Self Post')
    self_post.props.active = True
    stack = find_widget(root, kind=Gtk.Stack)
    wait_for(lambda: stack.props.visible_child_name == 'self')

    find_widget(root, placeholder='Title').props.text = 'Some Title'
    find_widget(root, kind=Gtk.TextView).props.buffer.set_text('self')
    find_widget(root, placeholder='Subreddit').props.text = 'test'
    find_widget(root, label='Submit', kind=Gtk.Button).emit('clicked')

    wait_for(lambda: api.submit.called)
    (data, cb), _ = api.submit.call_args
    assert data == {
        'kind': 'self',
        'sr': 'test',
        'title': 'Some Title',
        'text': 'self',
    }
Exemple #45
0
def test_popover_selects_row():
    ic = MagicMock()
    ic.all_tokens = [(1, MagicMock(user_name='user name 1')),
                     (2, MagicMock(user_name='user name 2'))]
    ic.active_token = ic.all_tokens[0][1]

    popover = identitybutton._IdentityPopover(ic)

    def get_row(text: str):
        label = find_widget(popover, label=text)
        while not isinstance(label, Gtk.ListBoxRow):
            assert label
            label = label.get_parent()
        return label

    row1 = get_row('user name 1')
    row2 = get_row('user name 2')
    listbox = find_widget(popover, kind=Gtk.ListBox)

    assert listbox.get_selected_rows() == [row1]
    listbox.emit('row-selected', row2)
    wait_for(lambda: ic.switch_account.called)
    assert ic.switch_account.call_args[0][0] == 2
def test_popover_selects_row():
    ic = MagicMock()
    ic.all_tokens = [
            (1, MagicMock(user_name='user name 1')),
            (2, MagicMock(user_name='user name 2'))]
    ic.active_token = ic.all_tokens[0][1]

    popover = identitybutton._IdentityPopover(ic)

    def get_row(text: str):
        label = find_widget(popover, label=text)
        while not isinstance(label, Gtk.ListBoxRow):
            assert label
            label = label.get_parent()
        return label

    row1 = get_row('user name 1')
    row2 = get_row('user name 2')
    listbox = find_widget(popover, kind=Gtk.ListBox)

    assert listbox.get_selected_rows() == [row1]
    listbox.emit('row-selected', row2)
    wait_for(lambda: ic.switch_account.called)
    assert ic.switch_account.call_args[0][0] == 2
Exemple #47
0
 def get_row(text: str):
     label = find_widget(popover, label=text)
     while not isinstance(label, Gtk.ListBoxRow):
         assert label
         label = label.get_parent()
     return label
def test_subentry_create():
    api = MagicMock()
    api.user_name = 'username'
    root = subentry.SubEntry(api, text='/r/linux')

    assert find_widget(root, label='/r/linux')
Exemple #49
0
def test_subentry_create():
    api = MagicMock()
    api.user_name = 'username'
    root = subentry.SubEntry(api, text='/r/linux')

    assert find_widget(root, label='/r/linux')
def test_emptyview_with_action():
    root = emptyview.EmptyView('yo', action='do')
    root.action = MagicMock()
    find_widget(root, label='do', kind=Gtk.Button).emit('clicked')
    wait_for(lambda: root.action.emit.called)
def test_create_window_with_subreddit():
    api = MagicMock()
    window = submit.SubmitWindow(api, sub='linux')
    root = window.window
    assert find_widget(root, placeholder='Subreddit').props.text == 'linux'
 def get_row(text: str):
     label = find_widget(popover, label=text)
     while not isinstance(label, Gtk.ListBoxRow):
         assert label
         label = label.get_parent()
     return label
def test_emptyview_has_label():
    root = emptyview.EmptyView('yo')
    assert find_widget(root, label='yo')
def test_create_window_with_subreddit():
    api = MagicMock()
    window = submit.SubmitWindow(api, sub='linux')
    root = window.window
    assert find_widget(root, placeholder='Subreddit').props.text == 'linux'