예제 #1
0
파일: web_test.py 프로젝트: Kroisse/web
def test_update_feed_entries(fx_xml_for_update, fx_test_stage,
                             fx_crawling_queue):
    with app.test_client() as client:
        worker.start_worker()
        feed_two_id = get_hash('http://feedtwo.com/feed/atom/')
        with fx_test_stage as stage:
            assert len(stage.feeds[feed_two_id].entries) == 1

        assert worker.qsize() == 0
        r = client.put(
            get_url(
                'update_entries',
                category_id='-categoryone/-categorytwo',
                feed_id=feed_two_id
            )
        )
        assert r.status_code == 202
        worker.kill_worker()
        r = client.put(
            get_url(
                'update_entries',
                category_id='-categoryone/-categorytwo',
                feed_id=feed_two_id
            )
        )
        assert r.status_code == 404
예제 #2
0
파일: web_test.py 프로젝트: 0hoo/web
def test_delete_category_in_root(xmls):
    with app.test_client() as client:
        r = client.delete('/-categoryone/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result == json.loads(client.get('/feeds/').data)
        for child in result['categories']:
            assert not child['title'] == 'categoryone'
예제 #3
0
def test_delete_category_in_root(xmls):
    with app.test_client() as client:
        r = client.delete('/-categoryone/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result == json.loads(client.get('/feeds/').data)
        for child in result['categories']:
            assert not child['title'] == 'categoryone'
예제 #4
0
def test_invalid_path(xmls):
    with app.test_client() as client:
        feed_id = hashlib.sha1(
            binary('http://feedone.com/feed/atom/')).hexdigest()
        r = client.get('/non-exist-category/feeds/' + feed_id + '/entries/')
        result = json.loads(r.data)
        assert r.status_code == 404
        assert result['error'] == 'category-id-invalid'
예제 #5
0
파일: web_test.py 프로젝트: 0hoo/web
def test_invalid_path(xmls):
    with app.test_client() as client:
        feed_id = hashlib.sha1(
            binary('http://feedone.com/feed/atom/')).hexdigest()
        r = client.get('/non-exist-category/feeds/' + feed_id + '/entries/')
        result = json.loads(r.data)
        assert r.status_code == 404
        assert result['error'] == 'category-id-invalid'
예제 #6
0
def test_delete_feed(xmls, fx_test_stage):
    with app.test_client() as client:
        feed_id = hashlib.sha1(
            binary('http://feedthree.com/feed/atom/')).hexdigest()
        r = client.delete('/feeds/' + feed_id + '/')
        assert r.status_code == 200
        result = json.loads(r.data)
        for child in result['feeds']:
            assert child['title'] != 'Feed Three'
예제 #7
0
파일: web_test.py 프로젝트: 0hoo/web
def test_delete_feed(xmls, fx_test_stage):
    with app.test_client() as client:
        feed_id = hashlib.sha1(
            binary('http://feedthree.com/feed/atom/')).hexdigest()
        r = client.delete('/feeds/' + feed_id + '/')
        assert r.status_code == 200
        result = json.loads(r.data)
        for child in result['feeds']:
            assert child['title'] != 'Feed Three'
예제 #8
0
def test_add_category_without_opml(fx_test_stage):
    with app.test_client() as client:
        r = client.post('/', data=dict(title='testcategory'))
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['categories'][0]['title'] == 'testcategory'
        with fx_test_stage as stage:
            subscriptions = stage.subscriptions
        assert subscriptions.categories['testcategory'] is not None
예제 #9
0
파일: web_test.py 프로젝트: 0hoo/web
def test_move_to_root(xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.put('/feeds/?from=-categoryone/feeds/' +
                       get_hash('http://feedone.com/feed/atom/'))
        assert r.status_code == 200
    with fx_test_stage as stage:
        subscriptions = stage.subscriptions
        for child in subscriptions.categories['categoryone'].children:
            assert child.label != 'Feed One'
        assert len(subscriptions.children) == 4
예제 #10
0
def test_add_feed_without_opml(fx_test_stage):
    with app.test_client() as client:
        r = client.post('/feeds/',
                        data=dict(url='http://feedone.com/feed/atom/'))
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['feeds'][0]['title'] == 'Feed One'
        with fx_test_stage as stage:
            subscriptions = stage.subscriptions
        assert len(subscriptions.subscriptions) == 1
예제 #11
0
파일: web_test.py 프로젝트: 0hoo/web
def test_add_feed_without_opml(fx_test_stage):
    with app.test_client() as client:
        r = client.post('/feeds/',
                        data=dict(url='http://feedone.com/feed/atom/'))
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['feeds'][0]['title'] == 'Feed One'
        with fx_test_stage as stage:
            subscriptions = stage.subscriptions
        assert len(subscriptions.subscriptions) == 1
예제 #12
0
파일: web_test.py 프로젝트: 0hoo/web
def test_add_category_without_opml(fx_test_stage):
    with app.test_client() as client:
        r = client.post('/',
                        data=dict(title='testcategory'))
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['categories'][0]['title'] == 'testcategory'
        with fx_test_stage as stage:
            subscriptions = stage.subscriptions
        assert subscriptions.categories['testcategory'] is not None
예제 #13
0
def test_add_feed(xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.post('/feeds/',
                        data=dict(url='http://feedfive.com/feed/atom/'))
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['feeds'][1]['title'] == 'Feed Five'
        with fx_test_stage as stage:
            opml = stage.subscriptions
        assert opml.children[3]._title == 'Feed Five'
예제 #14
0
파일: web_test.py 프로젝트: 0hoo/web
def test_add_feed(xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.post('/feeds/',
                        data=dict(url='http://feedfive.com/feed/atom/'))
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['feeds'][1]['title'] == 'Feed Five'
        with fx_test_stage as stage:
            opml = stage.subscriptions
        assert opml.children[3]._title == 'Feed Five'
예제 #15
0
def test_move_to_root(xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.put('/feeds/?from=-categoryone/feeds/' +
                       get_hash('http://feedone.com/feed/atom/'))
        assert r.status_code == 200
    with fx_test_stage as stage:
        subscriptions = stage.subscriptions
        for child in subscriptions.categories['categoryone'].children:
            assert child.label != 'Feed One'
        assert len(subscriptions.children) == 4
예제 #16
0
def test_delete_feed_in_category(xmls):
    with app.test_client() as client:
        r = client.get('/-categoryone/feeds/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert len(result['feeds']) == 1
        remove_feed_url = result['feeds'][0]['remove_feed_url']
        r = client.delete(remove_feed_url)
        assert r.status_code == 200
        result = json.loads(r.data)
        assert len(result['feeds']) == 0
예제 #17
0
파일: web_test.py 프로젝트: 0hoo/web
def test_delete_category_in_category(xmls):
    with app.test_client() as client:
        r = client.get('/-categoryone/feeds/')
        assert r.status_code == 200
        result = json.loads(r.data)
        remove_category_url = result['categories'][0]['remove_category_url']
        r = client.delete(remove_category_url)
        assert r.status_code == 200
        result = json.loads(client.get('/-categoryone/feeds/').data)
        for child in result['categories']:
            assert not child['title'] == 'categorytwo'
예제 #18
0
파일: web_test.py 프로젝트: 0hoo/web
def test_delete_feed_in_category(xmls):
    with app.test_client() as client:
        r = client.get('/-categoryone/feeds/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert len(result['feeds']) == 1
        remove_feed_url = result['feeds'][0]['remove_feed_url']
        r = client.delete(remove_feed_url)
        assert r.status_code == 200
        result = json.loads(r.data)
        assert len(result['feeds']) == 0
예제 #19
0
파일: web_test.py 프로젝트: 0hoo/web
def test_update_category_entries(fx_xml_for_update, fx_test_stage,
                                 fx_crawling_queue):
    with app.test_client() as client:
        feed_two_id = get_hash('http://feedtwo.com/feed/atom/')
        feed_three_id = get_hash('http://feedthree.com/feed/atom/')
        with fx_test_stage as stage:
            assert len(stage.feeds[feed_two_id].entries) == 1
            assert len(stage.feeds[feed_three_id].entries) == 1
        r = client.put('/entries/')
        assert r.status_code == 202
        assert crawling_queue.qsize() == 1
예제 #20
0
def test_update_category_entries(fx_xml_for_update, fx_test_stage,
                                 fx_crawling_queue):
    with app.test_client() as client:
        feed_two_id = get_hash('http://feedtwo.com/feed/atom/')
        feed_three_id = get_hash('http://feedthree.com/feed/atom/')
        with fx_test_stage as stage:
            assert len(stage.feeds[feed_two_id].entries) == 1
            assert len(stage.feeds[feed_three_id].entries) == 1
        r = client.put('/entries/')
        assert r.status_code == 202
        assert crawling_queue.qsize() == 1
예제 #21
0
def test_delete_category_in_category(xmls):
    with app.test_client() as client:
        r = client.get('/-categoryone/feeds/')
        assert r.status_code == 200
        result = json.loads(r.data)
        remove_category_url = result['categories'][0]['remove_category_url']
        r = client.delete(remove_category_url)
        assert r.status_code == 200
        result = json.loads(client.get('/-categoryone/feeds/').data)
        for child in result['categories']:
            assert not child['title'] == 'categorytwo'
예제 #22
0
파일: web_test.py 프로젝트: 0hoo/web
def test_move_category(xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.put('/-categorythree/feeds/?from=-categoryone')
        assert r.status_code == 200
    with fx_test_stage as stage:
        subscriptions = stage.subscriptions
        with raises(KeyError):
            subscriptions.categories['categoryone']
        category_three = subscriptions.categories['categorythree']
        assert len(category_three.children) == 2
        category_one = category_three.categories['categoryone']
        assert len(category_one.children) == 2
예제 #23
0
def test_category_entries_filtering(make_empty, xmls_for_next):
    with app.test_client() as client:
        r = client.get('/-categoryone/entries/?read=False')
        result = json.loads(r.data)
        for entry in result['entries']:
            assert entry['read'] is False
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        result = json.loads(r.data)
        for entry in result['entries']:
            assert entry['read'] is False
예제 #24
0
파일: web_test.py 프로젝트: 0hoo/web
def test_category_entries_filtering(make_empty, xmls_for_next):
    with app.test_client() as client:
        r = client.get('/-categoryone/entries/?read=False')
        result = json.loads(r.data)
        for entry in result['entries']:
            assert entry['read'] is False
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        result = json.loads(r.data)
        for entry in result['entries']:
            assert entry['read'] is False
예제 #25
0
def test_move_category(xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.put('/-categorythree/feeds/?from=-categoryone')
        assert r.status_code == 200
    with fx_test_stage as stage:
        subscriptions = stage.subscriptions
        with raises(KeyError):
            subscriptions.categories['categoryone']
        category_three = subscriptions.categories['categorythree']
        assert len(category_three.children) == 2
        category_one = category_three.categories['categoryone']
        assert len(category_one.children) == 2
예제 #26
0
def test_feed_with_20_entries(make_empty, xmls_for_next):
    with app.test_client() as client:
        r = client.get('/feeds/' + get_hash('http://feedthree.com/') +
                       '/entries/')
        assert r.status_code == 200
        result = json.loads(r.data)
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert not result['entries']
        assert not result['next_url']
예제 #27
0
파일: web_test.py 프로젝트: 0hoo/web
def test_feed_with_20_entries(make_empty, xmls_for_next):
    with app.test_client() as client:
        r = client.get('/feeds/' + get_hash('http://feedthree.com/') +
                       '/entries/')
        assert r.status_code == 200
        result = json.loads(r.data)
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert not result['entries']
        assert not result['next_url']
예제 #28
0
def test_feed_entries_filtering(make_empty, xmls_for_next):
    with app.test_client() as client:
        feed_id = get_hash('http://feedfour.com/')
        r = client.get('/feeds/' + feed_id + '/entries/?read=False')
        assert r.status_code == 200
        result = json.loads(r.data)
        for entry in result['entries']:
            assert entry['read'] is False
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        result = json.loads(r.data)
        for entry in result['entries']:
            assert entry['read'] is False
예제 #29
0
파일: web_test.py 프로젝트: 0hoo/web
def test_entries_filtering(read, starred, expected_entries,
                           fx_filtering_entries, fx_test_stage):
    feed_id = get_hash('http://feedone.com/feed/atom/')
    options = {}
    if read is not None:
        options['read'] = str(read)
    if starred is not None:
        options['starred'] = str(starred)
    qs = url_encode(options)
    with app.test_client() as client:
        r = client.get('/feeds/' + feed_id + '/entries/?' + qs)
        entries = json.loads(r.data)['entries']
        assert (frozenset(int(e['title']) for e in entries) ==
                frozenset(expected_entries))
예제 #30
0
def test_non_exist_feed(fx_non_exist_opml):
    with app.test_client() as client:
        r = client.get('/-categoryone/entries/')
        assert r.status_code == 200
        with_non_exist_feed_result = json.loads(r.data)
        feed_one_id = get_hash('http://feedone.com/feed/atom/')
        r = client.get('/-categoryone/feeds/' + feed_one_id + '/entries/')
        assert r.status_code == 200
        feed_one_result = json.loads(r.data)
        assert len(with_non_exist_feed_result['entries']) == \
            len(feed_one_result['entries']) == 2
        non_exist_id = get_hash('Non Exist')
        r = client.get('/-categoryone/feeds/' + non_exist_id + '/entries/')
        assert r.status_code == 404
예제 #31
0
def test_entries_filtering(read, starred, expected_entries,
                           fx_filtering_entries, fx_test_stage):
    feed_id = get_hash('http://feedone.com/feed/atom/')
    options = {}
    if read is not None:
        options['read'] = str(read)
    if starred is not None:
        options['starred'] = str(starred)
    qs = url_encode(options)
    with app.test_client() as client:
        r = client.get('/feeds/' + feed_id + '/entries/?' + qs)
        entries = json.loads(r.data)['entries']
        assert (frozenset(int(e['title'])
                          for e in entries) == frozenset(expected_entries))
예제 #32
0
def test_update_feed_entries(fx_xml_for_update, fx_test_stage,
                             fx_crawling_queue):
    with app.test_client() as client:
        feed_two_id = get_hash('http://feedtwo.com/feed/atom/')
        with fx_test_stage as stage:
            assert len(stage.feeds[feed_two_id].entries) == 1

        assert crawling_queue.qsize() == 0
        r = client.put(
            get_url('update_entries',
                    category_id='-categoryone/-categorytwo',
                    feed_id=feed_two_id))
        assert r.status_code == 202
        assert crawling_queue.qsize() == 1
예제 #33
0
def test_add_category_in_category(xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.get('/feeds/')
        assert r.status_code == 200
        result = json.loads(r.data)
        add_category_url = result['categories'][0]['add_category_url']
        r = client.post(add_category_url, data=dict(title='addedcategory'))
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['categories'][1]['title'] == 'addedcategory'
        with fx_test_stage as stage:
            subscriptions = stage.subscriptions
        categoryone = subscriptions.categories['categoryone']
        assert categoryone.categories['addedcategory'] is not None
예제 #34
0
파일: web_test.py 프로젝트: 0hoo/web
def test_feed_entries_filtering(make_empty, xmls_for_next):
    with app.test_client() as client:
        feed_id = get_hash('http://feedfour.com/')
        r = client.get('/feeds/' + feed_id + '/entries/?read=False')
        assert r.status_code == 200
        result = json.loads(r.data)
        for entry in result['entries']:
            assert entry['read'] is False
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        result = json.loads(r.data)
        for entry in result['entries']:
            assert entry['read'] is False
예제 #35
0
파일: web_test.py 프로젝트: 0hoo/web
def test_non_exist_feed(fx_non_exist_opml):
    with app.test_client() as client:
        r = client.get('/-categoryone/entries/')
        assert r.status_code == 200
        with_non_exist_feed_result = json.loads(r.data)
        feed_one_id = get_hash('http://feedone.com/feed/atom/')
        r = client.get('/-categoryone/feeds/' + feed_one_id + '/entries/')
        assert r.status_code == 200
        feed_one_result = json.loads(r.data)
        assert len(with_non_exist_feed_result['entries']) == \
            len(feed_one_result['entries']) == 2
        non_exist_id = get_hash('Non Exist')
        r = client.get('/-categoryone/feeds/' + non_exist_id + '/entries/')
        assert r.status_code == 404
예제 #36
0
def test_request_same_feed(make_empty, xmls_for_next):
    with app.test_client() as client:
        r1 = client.get('/-categoryone/feeds/' +
                        get_hash('http://feedone.com/') + '/entries/')
        r2 = client.get('/-categoryone/feeds/' +
                        get_hash('http://feedone.com/') + '/entries/')
        r1_result = json.loads(r1.data)
        r2_result = json.loads(r2.data)
        r1_next = client.get(r1_result['next_url'])
        if make_empty:
            entry_generators.clear()
        r2_next = client.get(r2_result['next_url'])
        r1_result = json.loads(r1_next.data)
        r2_result = json.loads(r2_next.data)
        assert r1_result['entries'] == r2_result['entries']
예제 #37
0
파일: web_test.py 프로젝트: 0hoo/web
def test_add_category_in_category(xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.get('/feeds/')
        assert r.status_code == 200
        result = json.loads(r.data)
        add_category_url = result['categories'][0]['add_category_url']
        r = client.post(add_category_url,
                        data=dict(title='addedcategory'))
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['categories'][1]['title'] == 'addedcategory'
        with fx_test_stage as stage:
            subscriptions = stage.subscriptions
        categoryone = subscriptions.categories['categoryone']
        assert categoryone.categories['addedcategory'] is not None
예제 #38
0
def test_feed_entries_next(make_empty, xmls_for_next):
    with app.test_client() as client:
        r = client.get('/-categoryone/feeds/' +
                       get_hash('http://feedone.com/') + '/entries/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert len(result['entries']) == 20
        assert result['entries'][-1]['title'] == 'Feed One: Entry 5'
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert len(result['entries']) == 5
        assert result['entries'][-1]['title'] == 'Feed One: Entry 0'
        assert not result['next_url']
예제 #39
0
파일: web_test.py 프로젝트: 0hoo/web
def test_add_feed_in_category(xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.get('/-categoryone/feeds/')
        assert r.status_code == 200
        result = json.loads(r.data)
        add_feed_url = result['categories'][0]['add_feed_url']
        r = client.post(add_feed_url,
                        data=dict(url='http://feedfive.com/feed/atom/'))
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['feeds'][0]['title'] == 'Feed Two'
        assert result['feeds'][1]['title'] == 'Feed Five'
        with fx_test_stage as stage:
            subscriptions = stage.subscriptions
        categoryone = subscriptions.categories['categoryone']
        categorytwo = categoryone.categories['categorytwo']
        assert len(categorytwo.subscriptions) == 2
예제 #40
0
def test_add_feed_in_category(xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.get('/-categoryone/feeds/')
        assert r.status_code == 200
        result = json.loads(r.data)
        add_feed_url = result['categories'][0]['add_feed_url']
        r = client.post(add_feed_url,
                        data=dict(url='http://feedfive.com/feed/atom/'))
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['feeds'][0]['title'] == 'Feed Two'
        assert result['feeds'][1]['title'] == 'Feed Five'
        with fx_test_stage as stage:
            subscriptions = stage.subscriptions
        categoryone = subscriptions.categories['categoryone']
        categorytwo = categoryone.categories['categorytwo']
        assert len(categorytwo.subscriptions) == 2
예제 #41
0
파일: web_test.py 프로젝트: 0hoo/web
def test_feed_entries_next(make_empty, xmls_for_next):
    with app.test_client() as client:
        r = client.get('/-categoryone/feeds/' +
                       get_hash('http://feedone.com/') +
                       '/entries/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert len(result['entries']) == 20
        assert result['entries'][-1]['title'] == 'Feed One: Entry 5'
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert len(result['entries']) == 5
        assert result['entries'][-1]['title'] == 'Feed One: Entry 0'
        assert not result['next_url']
예제 #42
0
파일: web_test.py 프로젝트: 0hoo/web
def test_request_same_feed(make_empty, xmls_for_next):
    with app.test_client() as client:
        r1 = client.get('/-categoryone/feeds/' +
                        get_hash('http://feedone.com/') +
                        '/entries/')
        r2 = client.get('/-categoryone/feeds/' +
                        get_hash('http://feedone.com/') +
                        '/entries/')
        r1_result = json.loads(r1.data)
        r2_result = json.loads(r2.data)
        r1_next = client.get(r1_result['next_url'])
        if make_empty:
            entry_generators.clear()
        r2_next = client.get(r2_result['next_url'])
        r1_result = json.loads(r1_next.data)
        r2_result = json.loads(r2_next.data)
        assert r1_result['entries'] == r2_result['entries']
예제 #43
0
def test_category_mark_all(list_url, feed_id, xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.get(list_url)
        assert r.status_code == 200
        result = json.loads(r.data)

        r = client.put(result['read_url'])
        assert r.status_code == 200

        with fx_test_stage as stage:
            subscriptions = stage.subscriptions.recursive_subscriptions
            if feed_id:
                subscriptions = [
                    sub for sub in subscriptions if sub.feed_id == feed_id
                ]
            for sub in subscriptions:
                for entry in stage.feeds[sub.feed_id].entries:
                    assert entry.read
예제 #44
0
def test_entry_star_unstar(xmls, fx_test_stage):
    with app.test_client() as client:
        feed_three_id = get_hash('http://feedthree.com/feed/atom/')
        test_entry_id = get_hash('http://feedthree.com/feed/atom/1/')
        with fx_test_stage as stage:
            assert not stage.feeds[feed_three_id].entries[0].read
        r = client.get('/feeds/' + feed_three_id + '/entries/' +
                       test_entry_id + '/')
        assert r.status_code == 200
        result = json.loads(r.data)
        r = client.put(result['star_url'])
        assert r.status_code == 200
        with fx_test_stage as stage:
            assert stage.feeds[feed_three_id].entries[0].starred
        r = client.delete(result['unstar_url'])
        assert r.status_code == 200
        with fx_test_stage as stage:
            assert not stage.feeds[feed_three_id].entries[0].starred
예제 #45
0
파일: web_test.py 프로젝트: hodduc/web
def test_category_mark_all(list_url, feed_id, xmls, fx_test_stage):
    with app.test_client() as client:
        r = client.get(list_url)
        assert r.status_code == 200
        result = json.loads(r.data)

        r = client.put(result['read_url'])
        assert r.status_code == 200

        with fx_test_stage as stage:
            subscriptions = stage.subscriptions.recursive_subscriptions
            if feed_id:
                subscriptions = [sub
                                 for sub in subscriptions
                                 if sub.feed_id == feed_id]
            for sub in subscriptions:
                for entry in stage.feeds[sub.feed_id].entries:
                    assert entry.read
예제 #46
0
파일: web_test.py 프로젝트: 0hoo/web
def test_entry_star_unstar(xmls, fx_test_stage):
    with app.test_client() as client:
        feed_three_id = get_hash('http://feedthree.com/feed/atom/')
        test_entry_id = get_hash('http://feedthree.com/feed/atom/1/')
        with fx_test_stage as stage:
            assert not stage.feeds[feed_three_id].entries[0].read
        r = client.get('/feeds/' + feed_three_id + '/entries/' +
                       test_entry_id + '/')
        assert r.status_code == 200
        result = json.loads(r.data)
        r = client.put(result['star_url'])
        assert r.status_code == 200
        with fx_test_stage as stage:
            assert stage.feeds[feed_three_id].entries[0].starred
        r = client.delete(result['unstar_url'])
        assert r.status_code == 200
        with fx_test_stage as stage:
            assert not stage.feeds[feed_three_id].entries[0].starred
예제 #47
0
def test_category_entries_next(make_empty, xmls_for_next):
    with app.test_client() as client:
        r = client.get('/-categoryone/entries/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert len(result['entries']) == 20
        assert result['entries'][-1]['title'] == 'Feed Two: Entry 15'
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        result = json.loads(r.data)
        assert len(result['entries']) == 20
        assert result['entries'][-1]['title'] == 'Feed Two: Entry 5'
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        result = json.loads(r.data)
        assert len(result['entries']) == 10
        assert result['entries'][-1]['title'] == 'Feed Two: Entry 0'
예제 #48
0
파일: web_test.py 프로젝트: 0hoo/web
def test_category_entries_next(make_empty, xmls_for_next):
    with app.test_client() as client:
        r = client.get('/-categoryone/entries/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert len(result['entries']) == 20
        assert result['entries'][-1]['title'] == 'Feed Two: Entry 15'
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        result = json.loads(r.data)
        assert len(result['entries']) == 20
        assert result['entries'][-1]['title'] == 'Feed Two: Entry 5'
        if make_empty:
            entry_generators.clear()
        r = client.get(result['next_url'])
        result = json.loads(r.data)
        assert len(result['entries']) == 10
        assert result['entries'][-1]['title'] == 'Feed Two: Entry 0'
예제 #49
0
def test_category_all_entries(xmls):
    with app.test_client() as client:
        r = client.get('/-categoryone/entries/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'categoryone'
        assert result['entries'][0]['title'] == 'Feed One: Entry Two'
        entry_url = result['entries'][0]['entry_url']
        r = client.get(entry_url)
        assert r.status_code == 200
        two_result = json.loads(r.data)
        assert two_result['title'] == 'Feed One: Entry Two'
        assert two_result['content'] == \
            'This is content of Entry Two in Feed One'
        assert two_result['updated'] == '2013-10-19 07:49:20+07:00'
        assert two_result['permalink'] == 'http://feedone.com/feed/atom/2/'
        assert two_result['feed']['title'] == 'Feed One'
        assert two_result['feed']['permalink'] == \
            'http://feedone.com'
        feed_id = get_hash('http://feedone.com/feed/atom/')
        assert two_result['feed']['entries_url'] == \
            url_for(
                'feed_entries',
                category_id='-categoryone',
                feed_id=feed_id,
                _external=True
            )
        assert result['entries'][1]['title'] == 'Feed Two: Entry One'
        entry_url = result['entries'][1]['entry_url']
        r = client.get(entry_url)
        assert r.status_code == 200
        one_result = json.loads(r.data)
        assert one_result['content'] == \
            'This is content of Entry One in Feed Two'
        r = client.get('/-categoryone/-categorytwo/entries/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'categorytwo'
        assert result['entries'][0]['title'] == 'Feed Two: Entry One'
예제 #50
0
파일: web_test.py 프로젝트: 0hoo/web
def test_category_all_entries(xmls):
    with app.test_client() as client:
        r = client.get('/-categoryone/entries/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'categoryone'
        assert result['entries'][0]['title'] == 'Feed One: Entry Two'
        entry_url = result['entries'][0]['entry_url']
        r = client.get(entry_url)
        assert r.status_code == 200
        two_result = json.loads(r.data)
        assert two_result['title'] == 'Feed One: Entry Two'
        assert two_result['content'] == \
            'This is content of Entry Two in Feed One'
        assert two_result['updated'] == '2013-10-19 07:49:20+07:00'
        assert two_result['permalink'] == 'http://feedone.com/feed/atom/2/'
        assert two_result['feed']['title'] == 'Feed One'
        assert two_result['feed']['permalink'] == \
            'http://feedone.com'
        feed_id = get_hash('http://feedone.com/feed/atom/')
        assert two_result['feed']['entries_url'] == \
            url_for(
                'feed_entries',
                category_id='-categoryone',
                feed_id=feed_id,
                _external=True
            )
        assert result['entries'][1]['title'] == 'Feed Two: Entry One'
        entry_url = result['entries'][1]['entry_url']
        r = client.get(entry_url)
        assert r.status_code == 200
        one_result = json.loads(r.data)
        assert one_result['content'] == \
            'This is content of Entry One in Feed Two'
        r = client.get('/-categoryone/-categorytwo/entries/')
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'categorytwo'
        assert result['entries'][0]['title'] == 'Feed Two: Entry One'
예제 #51
0
파일: web_test.py 프로젝트: hodduc/web
def test_feed_entries_http_cache():
    """feed_entries() should be cached using Last-Modified header."""
    with app.test_client() as client:
        url = get_url('feed_entries', feed_id=get_hash('http://feedone.com/'))
        response = client.get(url)
        assert response.status_code == 200
        assert response.last_modified
        result = json.loads(response.data)
        entries = [e for e in result['entries'] if not e['read']]
        response2 = client.get(url, headers={
            'If-Modified-Since': response.headers['Last-Modified']
        })
        assert response2.status_code == 304
        entry = json.loads(client.get(entries[0]['entry_url']).data)
        time.sleep(1)
        client.put(entry['read_url'])
        response3 = client.get(url, headers={
            'If-Modified-Since': response.headers['Last-Modified']
        })
        assert response3.status_code == 200
        assert response3.last_modified > response.last_modified
        result3 = json.loads(response3.data)
        entries3 = [e for e in result3['entries'] if not e['read']]
        assert len(entries) - 1 == len(entries3)
예제 #52
0
def test_feed_entries_http_cache():
    """feed_entries() should be cached using Last-Modified header."""
    with app.test_client() as client:
        url = get_url('feed_entries', feed_id=get_hash('http://feedone.com/'))
        response = client.get(url)
        assert response.status_code == 200
        assert response.last_modified
        result = json.loads(response.data)
        entries = [e for e in result['entries'] if not e['read']]
        response2 = client.get(
            url,
            headers={'If-Modified-Since': response.headers['Last-Modified']})
        assert response2.status_code == 304
        entry = json.loads(client.get(entries[0]['entry_url']).data)
        time.sleep(1)
        client.put(entry['read_url'])
        response3 = client.get(
            url,
            headers={'If-Modified-Since': response.headers['Last-Modified']})
        assert response3.status_code == 200
        assert response3.last_modified > response.last_modified
        result3 = json.loads(response3.data)
        entries3 = [e for e in result3['entries'] if not e['read']]
        assert len(entries) - 1 == len(entries3)
예제 #53
0
파일: web_test.py 프로젝트: 0hoo/web
def test_move_category_circular(xmls):
    with app.test_client() as client:
        r = client.put('/-categoryone/-categorytwo/feeds/?from=-categoryone')
        assert r.status_code == 400
예제 #54
0
파일: web_test.py 프로젝트: 0hoo/web
def test_all_feeds(xmls):
    with app.test_client() as client:
        FEED_ONE_ID = get_hash('http://feedone.com/feed/atom/')
        FEED_TWO_ID = get_hash('http://feedtwo.com/feed/atom/')
        FEED_THREE_ID = get_hash('http://feedthree.com/feed/atom/')
        FEED_FOUR_ID = get_hash('http://feedfour.com/feed/atom/')
        # /
        r = client.get('/feeds/')
        assert r.status_code == 200
        result = json.loads(r.data)
        root_feeds = result['feeds']
        root_categories = result['categories']
        assert root_feeds[0]['title'] == 'Feed Three'
        assert root_feeds[0]['path'] == '/feeds/' + FEED_THREE_ID
        assert root_categories[0]['title'] == 'categoryone'
        assert root_categories[0]['path'] == '-categoryone'
        assert root_categories[1]['title'] == 'categorythree'
        assert root_categories[1]['path'] == '-categorythree'
        # /feedthree
        feed_url = root_feeds[0]['entries_url']
        assert feed_url == \
            url_for(
                'feed_entries',
                feed_id=FEED_THREE_ID,
                _external=True
            )
        r = client.get(feed_url)
        assert r.status_code == 200
        result = json.loads(r.data)
        entries = result['entries']
        assert entries[0]['title'] == 'Feed Three: Entry One'
        assert entries[0]['entry_url'] == \
            url_for(
                'feed_entry',
                feed_id=FEED_THREE_ID,
                entry_id=get_hash('http://feedthree.com/feed/atom/1/'),
                _external=True,
            )
        assert entries[0]['updated'] == '2013-08-21T00:49:20Z'
        r = client.get(entries[0]['entry_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'Feed Three: Entry One'
        assert result['content'] == \
            'This is content of Entry One in Feed Three'
        assert result['updated'] == '2013-08-21 07:49:20+07:00'
        # /categoryone
        category_url = root_categories[0]['feeds_url']
        assert category_url == \
            url_for(
                'feeds',
                category_id='-categoryone',
                _external=True
            )
        one_r = client.get(root_categories[0]['feeds_url'])
        assert one_r.status_code == 200
        one_result = json.loads(one_r.data)
        one_feeds = one_result['feeds']
        one_categories = one_result['categories']
        assert one_feeds[0]['title'] == 'Feed One'
        assert one_feeds[0]['path'] == '-categoryone/feeds/' + FEED_ONE_ID
        assert one_categories[0]['title'] == 'categorytwo'
        # /categoryone/feedone
        feed_url = one_feeds[0]['entries_url']
        feed_id = get_hash('http://feedone.com/feed/atom/')
        assert feed_url == \
            url_for(
                'feed_entries',
                category_id='-categoryone',
                feed_id=feed_id,
                _external=True
            )
        r = client.get(feed_url)
        assert r.status_code == 200
        result = json.loads(r.data)
        entries = result['entries']
        assert entries[0]['title'] == 'Feed One: Entry Two'
        assert entries[0]['entry_url'] == \
            url_for(
                'feed_entry',
                category_id='-categoryone',
                feed_id=feed_id,
                entry_id=get_hash('http://feedone.com/feed/atom/2/'),
                _external=True
            )
        assert entries[0]['updated'] == '2013-10-19T00:49:20Z'
        assert entries[1]['title'] == 'Feed One: Entry One'
        assert entries[1]['entry_url'] == \
            url_for(
                'feed_entry',
                category_id='-categoryone',
                feed_id=feed_id,
                entry_id=get_hash('http://feedone.com/feed/atom/1/'),
                _external=True
            )
        assert entries[1]['updated'] == '2013-08-19T00:49:20Z'
        r = client.get(entries[0]['entry_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'Feed One: Entry Two'
        assert result['content'] == \
            'This is content of Entry Two in Feed One'
        assert result['updated'] == '2013-10-19 07:49:20+07:00'
        # /categoryone/categorytwo
        two_r = client.get(one_categories[0]['feeds_url'])
        assert two_r.status_code == 200
        two_result = json.loads(two_r.data)
        two_feeds = two_result['feeds']
        two_categories = two_result['categories']
        assert two_feeds[0]['title'] == 'Feed Two'
        assert two_feeds[0]['path'] == '-categoryone/-categorytwo/feeds/' + \
            FEED_TWO_ID
        assert len(two_categories) == 0
        # /categoryone/categorytwo/feedtwo
        category_url = one_categories[0]['feeds_url']
        assert category_url == \
            url_for(
                'feeds',
                category_id='-categoryone/-categorytwo',
                _external=True
            )

        feed_url = two_feeds[0]['entries_url']
        feed_id = get_hash('http://feedtwo.com/feed/atom/')
        assert feed_url == \
            url_for(
                'feed_entries',
                category_id='-categoryone/-categorytwo',
                feed_id=feed_id,
                _external=True
            )
        r = client.get(feed_url)
        assert r.status_code == 200
        result = json.loads(r.data)
        entries = result['entries']
        assert entries[0]['title'] == 'Feed Two: Entry One'
        assert entries[0]['entry_url'] == \
            url_for(
                'feed_entry',
                category_id='-categoryone/-categorytwo',
                feed_id=feed_id,
                entry_id=get_hash('http://feedtwo.com/feed/atom/1/'),
                _external=True
            )
        assert entries[0]['updated'] == '2013-08-20T00:49:20Z'
        r = client.get(entries[0]['entry_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'Feed Two: Entry One'
        assert result['content'] == \
            'This is content of Entry One in Feed Two'
        assert result['updated'] == '2013-08-20 07:49:20+07:00'
        # categorythree
        category_url = root_categories[1]['feeds_url']
        assert category_url == \
            url_for(
                'feeds',
                category_id='-categorythree',
                _external=True
            )
        three_r = client.get(root_categories[1]['feeds_url'])
        assert three_r.status_code == 200
        three_result = json.loads(three_r.data)
        three_feeds = three_result['feeds']
        three_categories = three_result['categories']
        assert three_feeds[0]['title'] == 'Feed Four'
        assert three_feeds[0]['path'] == '-categorythree/feeds/' + FEED_FOUR_ID
        assert len(three_categories) == 0
        # /categorythree/feedfour
        feed_url = three_feeds[0]['entries_url']
        feed_id = get_hash('http://feedfour.com/feed/atom/')
        assert feed_url == \
            url_for(
                'feed_entries',
                category_id='-categorythree',
                feed_id=feed_id,
                _external=True
            )
        r = client.get(feed_url)
        assert r.status_code == 200
        result = json.loads(r.data)
        entries = result['entries']
        assert entries[0]['title'] == 'Feed Four: Entry One'
        assert entries[0]['entry_url'] == \
            url_for(
                'feed_entry',
                category_id='-categorythree',
                feed_id=feed_id,
                entry_id=get_hash('http://feedfour.com/feed/atom/1/'),
                _external=True
            )
        assert entries[0]['updated'] == '2013-08-22T00:49:20Z'
        r = client.get(entries[0]['entry_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'Feed Four: Entry One'
        assert result['content'] == \
            'This is content of Entry One in Feed Four'
        assert result['updated'] == '2013-08-22 07:49:20+07:00'
예제 #55
0
파일: web_test.py 프로젝트: 0hoo/web
def test_empty_category_all_entries(xmls):
    with app.test_client() as client:
        r = client.post('/', data=dict(title='test'))
        assert r.status_code == 200
        r = client.get('/-test/entries/')
        assert r.status_code == 200
예제 #56
0
def test_all_feeds(xmls):
    with app.test_client() as client:
        FEED_ONE_ID = get_hash('http://feedone.com/feed/atom/')
        FEED_TWO_ID = get_hash('http://feedtwo.com/feed/atom/')
        FEED_THREE_ID = get_hash('http://feedthree.com/feed/atom/')
        FEED_FOUR_ID = get_hash('http://feedfour.com/feed/atom/')
        # /
        r = client.get('/feeds/')
        assert r.status_code == 200
        result = json.loads(r.data)
        root_feeds = result['feeds']
        root_categories = result['categories']
        assert root_feeds[0]['title'] == 'Feed Three'
        assert root_feeds[0]['path'] == '/feeds/' + FEED_THREE_ID
        assert root_categories[0]['title'] == 'categoryone'
        assert root_categories[0]['path'] == '-categoryone'
        assert root_categories[1]['title'] == 'categorythree'
        assert root_categories[1]['path'] == '-categorythree'
        # /feedthree
        feed_url = root_feeds[0]['entries_url']
        assert feed_url == \
            url_for(
                'feed_entries',
                feed_id=FEED_THREE_ID,
                _external=True
            )
        r = client.get(feed_url)
        assert r.status_code == 200
        result = json.loads(r.data)
        entries = result['entries']
        assert entries[0]['title'] == 'Feed Three: Entry One'
        assert entries[0]['entry_url'] == \
            url_for(
                'feed_entry',
                feed_id=FEED_THREE_ID,
                entry_id=get_hash('http://feedthree.com/feed/atom/1/'),
                _external=True,
            )
        assert entries[0]['updated'] == '2013-08-21T00:49:20Z'
        r = client.get(entries[0]['entry_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'Feed Three: Entry One'
        assert result['content'] == \
            'This is content of Entry One in Feed Three'
        assert result['updated'] == '2013-08-21 07:49:20+07:00'
        # /categoryone
        category_url = root_categories[0]['feeds_url']
        assert category_url == \
            url_for(
                'feeds',
                category_id='-categoryone',
                _external=True
            )
        one_r = client.get(root_categories[0]['feeds_url'])
        assert one_r.status_code == 200
        one_result = json.loads(one_r.data)
        one_feeds = one_result['feeds']
        one_categories = one_result['categories']
        assert one_feeds[0]['title'] == 'Feed One'
        assert one_feeds[0]['path'] == '-categoryone/feeds/' + FEED_ONE_ID
        assert one_categories[0]['title'] == 'categorytwo'
        # /categoryone/feedone
        feed_url = one_feeds[0]['entries_url']
        feed_id = get_hash('http://feedone.com/feed/atom/')
        assert feed_url == \
            url_for(
                'feed_entries',
                category_id='-categoryone',
                feed_id=feed_id,
                _external=True
            )
        r = client.get(feed_url)
        assert r.status_code == 200
        result = json.loads(r.data)
        entries = result['entries']
        assert entries[0]['title'] == 'Feed One: Entry Two'
        assert entries[0]['entry_url'] == \
            url_for(
                'feed_entry',
                category_id='-categoryone',
                feed_id=feed_id,
                entry_id=get_hash('http://feedone.com/feed/atom/2/'),
                _external=True
            )
        assert entries[0]['updated'] == '2013-10-19T00:49:20Z'
        assert entries[1]['title'] == 'Feed One: Entry One'
        assert entries[1]['entry_url'] == \
            url_for(
                'feed_entry',
                category_id='-categoryone',
                feed_id=feed_id,
                entry_id=get_hash('http://feedone.com/feed/atom/1/'),
                _external=True
            )
        assert entries[1]['updated'] == '2013-08-19T00:49:20Z'
        r = client.get(entries[0]['entry_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'Feed One: Entry Two'
        assert result['content'] == \
            'This is content of Entry Two in Feed One'
        assert result['updated'] == '2013-10-19 07:49:20+07:00'
        # /categoryone/categorytwo
        two_r = client.get(one_categories[0]['feeds_url'])
        assert two_r.status_code == 200
        two_result = json.loads(two_r.data)
        two_feeds = two_result['feeds']
        two_categories = two_result['categories']
        assert two_feeds[0]['title'] == 'Feed Two'
        assert two_feeds[0]['path'] == '-categoryone/-categorytwo/feeds/' + \
            FEED_TWO_ID
        assert len(two_categories) == 0
        # /categoryone/categorytwo/feedtwo
        category_url = one_categories[0]['feeds_url']
        assert category_url == \
            url_for(
                'feeds',
                category_id='-categoryone/-categorytwo',
                _external=True
            )

        feed_url = two_feeds[0]['entries_url']
        feed_id = get_hash('http://feedtwo.com/feed/atom/')
        assert feed_url == \
            url_for(
                'feed_entries',
                category_id='-categoryone/-categorytwo',
                feed_id=feed_id,
                _external=True
            )
        r = client.get(feed_url)
        assert r.status_code == 200
        result = json.loads(r.data)
        entries = result['entries']
        assert entries[0]['title'] == 'Feed Two: Entry One'
        assert entries[0]['entry_url'] == \
            url_for(
                'feed_entry',
                category_id='-categoryone/-categorytwo',
                feed_id=feed_id,
                entry_id=get_hash('http://feedtwo.com/feed/atom/1/'),
                _external=True
            )
        assert entries[0]['updated'] == '2013-08-20T00:49:20Z'
        r = client.get(entries[0]['entry_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'Feed Two: Entry One'
        assert result['content'] == \
            'This is content of Entry One in Feed Two'
        assert result['updated'] == '2013-08-20 07:49:20+07:00'
        # categorythree
        category_url = root_categories[1]['feeds_url']
        assert category_url == \
            url_for(
                'feeds',
                category_id='-categorythree',
                _external=True
            )
        three_r = client.get(root_categories[1]['feeds_url'])
        assert three_r.status_code == 200
        three_result = json.loads(three_r.data)
        three_feeds = three_result['feeds']
        three_categories = three_result['categories']
        assert three_feeds[0]['title'] == 'Feed Four'
        assert three_feeds[0]['path'] == '-categorythree/feeds/' + FEED_FOUR_ID
        assert len(three_categories) == 0
        # /categorythree/feedfour
        feed_url = three_feeds[0]['entries_url']
        feed_id = get_hash('http://feedfour.com/feed/atom/')
        assert feed_url == \
            url_for(
                'feed_entries',
                category_id='-categorythree',
                feed_id=feed_id,
                _external=True
            )
        r = client.get(feed_url)
        assert r.status_code == 200
        result = json.loads(r.data)
        entries = result['entries']
        assert entries[0]['title'] == 'Feed Four: Entry One'
        assert entries[0]['entry_url'] == \
            url_for(
                'feed_entry',
                category_id='-categorythree',
                feed_id=feed_id,
                entry_id=get_hash('http://feedfour.com/feed/atom/1/'),
                _external=True
            )
        assert entries[0]['updated'] == '2013-08-22T00:49:20Z'
        r = client.get(entries[0]['entry_url'])
        assert r.status_code == 200
        result = json.loads(r.data)
        assert result['title'] == 'Feed Four: Entry One'
        assert result['content'] == \
            'This is content of Entry One in Feed Four'
        assert result['updated'] == '2013-08-22 07:49:20+07:00'
예제 #57
0
import contextlib
import traceback
try:
    import urllib2
except ImportError:
    from urllib import request as urllib2

from earthreader.web.app import app

# See also http://wiki.whatwg.org/wiki/Validator.nu_Web_Service_Interface
VALIDATOR_URL = 'http://validator.nu/?out=text'

with app.test_client() as client:
    response = client.get('/')
    content_type = response.headers['content-type']
    body = response.data

request = urllib2.Request(VALIDATOR_URL,
                          data=body,
                          headers={'Content-Type': content_type})

try:
    with contextlib.closing(urllib2.urlopen(request)) as response:
        message = response.read()
        failed = message.rstrip().endswith(b'There were errors.')
        print(message)
        raise SystemExit(int(failed))
except IOError:
    traceback.print_exc()
예제 #58
0
파일: web_test.py 프로젝트: 0hoo/web
def test_delete_non_exists_feed(xmls):
    with app.test_client() as client:
        r = client.delete('/feeds/non-exists-feed/')
        assert r.status_code == 400
        result = json.loads(r.data)
        assert result['error'] == 'feed-not-found-in-path'
예제 #59
0
def test_delete_non_exists_feed(xmls):
    with app.test_client() as client:
        r = client.delete('/feeds/non-exists-feed/')
        assert r.status_code == 400
        result = json.loads(r.data)
        assert result['error'] == 'feed-not-found-in-path'
예제 #60
0
def test_empty_category_all_entries(xmls):
    with app.test_client() as client:
        r = client.post('/', data=dict(title='test'))
        assert r.status_code == 200
        r = client.get('/-test/entries/')
        assert r.status_code == 200