예제 #1
0
    def test_delete(self):
        self.assertEqual(ItemData.query.count(), 0)

        item_data = ItemData(id='test/artist/Tester', item_id=self.item.id)
        db.session.add(item_data)
        db.session.flush()
        self.assertEqual(ItemData.query.count(), 1)

        item_data.delete()
        self.assertEqual(ItemData.query.count(), 0)
예제 #2
0
    def test_get_by_item_id(self):
        item_data = ItemData(id='test/artist/Tester', item_id=self.item.id)
        db.session.add(item_data)
        db.session.flush()

        results = ItemData.get_by_item_id(self.item.id)
        self.assertListEqual(results, [item_data])

        missing_results = ItemData.get_by_item_id(self.item.id + 1)
        self.assertListEqual(missing_results, [])
예제 #3
0
    def test_get(self):
        id = 'test/artist/Tester'
        item_data = ItemData(id=id, item_id=self.item.id)
        db.session.add(item_data)
        db.session.flush()

        same_item_data = ItemData.get(id)
        self.assertEqual(item_data, same_item_data)

        missing_item_data = ItemData.get('unknown')
        self.assertIsNone(missing_item_data)
예제 #4
0
    def test_list_index(self):
        item = Item.create()
        index = 'test'
        item_data = ItemData.create(item_id=item.id, data_json='{}', data_id='%s/album/lalala' % index)

        response = self.client.get("/api/1/data/%s" % index)
        self.assert200(response)
        self.assertEquals(response.json, dict(index=index, item_types=ItemData.get_item_types_by_index(index)))

        response = self.client.get("/api/1/data/missing")
        self.assert404(response)
예제 #5
0
    def test_to_dict(self):
        item_data = ItemData(id='test/artist/Tester', item_id=self.item.id)
        db.session.add(item_data)
        db.session.flush()
        self.assertDictEqual(item_data.to_dict(),
                             {'id': item_data.id, 'item_id': item_data.item_id, 'data': item_data.data})

        # Let's add some data
        item_data.data = '{"data": true}'
        db.session.flush()
        self.assertDictEqual(item_data.to_dict(),
                             {'id': item_data.id, 'item_id': item_data.item_id, 'data': '{"data": true}'})
예제 #6
0
    def test_data_item(self):
        item = Item.create()
        index = 'test'
        item_type = 'album'
        data_id = 'lalala'
        item_data = ItemData.create(item_id=item.id, data_json='{}', data_id='%s/%s/%s' % (index, item_type, data_id))

        response = self.client.get("/api/1/data/%s/%s/%s" % (index, item_type, data_id))
        self.assert200(response)
        self.assertEquals(response.json, dict(
            index=index, item_type=item_type,
            data_id=data_id, item_id=ItemData.data_to_item('/'.join([index, item_type, data_id]))))

        response = self.client.get("/api/1/data/%s/%s/missing" % (index, item_type))
        self.assert404(response)
예제 #7
0
    def test_get(self):
        item = Item()
        db.session.add(item)
        db.session.flush()

        id = 'item-data-1'
        item_data = ItemData(id=id, item_id=item.id)
        db.session.add(item_data)
        db.session.flush()

        same_item_data = ItemData.get(id)
        assert item_data == same_item_data

        missing_item_data = ItemData.get('unknown')
        assert missing_item_data is None
예제 #8
0
파일: views.py 프로젝트: metabrainz/geordi
def list_index(index):
    """Get list of item types for a specified index.

    :resheader Content-Type: *application/json*
    """
    item_types = ItemData.get_item_types_by_index(index)
    if not item_types:
        abort(404)
    return jsonify(index=index, item_types=item_types)
예제 #9
0
파일: views.py 프로젝트: metabrainz/geordi
def list_items(index, item_type):
    """Get list of items for a specified index and item type.

    :resheader Content-Type: *application/json*
    """
    item_ids = ItemData.get_item_ids(index, item_type)
    if not item_ids:
        abort(404)
    return jsonify(index=index, item_type=item_type, items=item_ids)
예제 #10
0
파일: views.py 프로젝트: metabrainz/geordi
def data_item(index, item_type, data_id):
    """Get item ID based on specified index, item type, and data ID.

    :resheader Content-Type: *application/json*
    """
    item_id = ItemData.data_to_item('/'.join([index, item_type, data_id]))
    if not item_id:
        abort(404)
    return jsonify(index=index, item_type=item_type, data_id=data_id, item_id=item_id)
예제 #11
0
    def test_list_index(self):
        item = Item.create()
        index = 'test'
        item_data = ItemData.create(item_id=item.id, data_json='{}', data_id='%s/album/lalala' % index)

        response = self.client.get("/data/%s" % index)
        self.assert200(response)

        response = self.client.get("/data/missing")
        self.assert404(response)
예제 #12
0
    def test_list_items(self):
        item = Item.create()
        index = 'test'
        item_type = 'album'
        item_data = ItemData.create(item_id=item.id, data_json='{}', data_id='%s/%s/lalala' % (index, item_type))

        response = self.client.get("/data/%s/%s" % (index, item_type))
        self.assert200(response)

        response = self.client.get("/data/%s/missing" % index)
        self.assert404(response)
예제 #13
0
    def test_delete(self):
        resp = Item.query.all()
        assert len(resp) == 0

        # Helper item
        item = Item()
        db.session.add(item)
        db.session.flush()

        item_data = ItemData(id='item-data-1', item_id=item.id)
        db.session.add(item_data)
        db.session.flush()

        resp = ItemData.query.all()
        assert len(resp) == 1

        item_data.delete()

        resp = ItemData.query.all()
        assert len(resp) == 0
예제 #14
0
    def test_update(self):
        item_data = ItemData(id='test/artist/Tester', item_id=self.item.id)
        db.session.add(item_data)
        db.session.flush()

        another_item = Item()
        db.session.add(another_item)
        db.session.flush()

        updated_item_data = ItemData.update(data_id=item_data.id, item_id=another_item.id, data='{"data": true}')

        self.assertEqual(item_data, updated_item_data)
예제 #15
0
    def test_data_item(self):
        item = Item.create()
        index = 'test'
        item_type = 'album'
        data_id = 'lalala'
        item_data = ItemData.create(item_id=item.id, data_json='{}', data_id='%s/%s/%s' % (index, item_type, data_id))

        response = self.client.get("/data/%s/%s/%s" % (index, item_type, data_id))
        self.assertEqual(response.status_code, 307)

        response = self.client.get("/data/%s/%s/missing" % (index, item_type))
        self.assert404(response)
예제 #16
0
def list_indexes():
    indexes = ItemData.get_indexes()
    return render_template('indexes.html', indexes=indexes)
예제 #17
0
파일: views.py 프로젝트: metabrainz/geordi
def list_indexes():
    """Get list of indexes.

    :resheader Content-Type: *application/json*
    """
    return jsonify(indexes=ItemData.get_indexes())
예제 #18
0
파일: manage.py 프로젝트: metabrainz/geordi
def show_data_item(data_id):
    """Show item ID given a data ID."""
    print ItemData.data_to_item(data_id)
예제 #19
0
def list_index(index):
    item_types = ItemData.get_item_types_by_index(index)
    if not item_types:
        abort(404)
    return render_template('index.html', item_types=item_types, index=index)
예제 #20
0
def list_items(index, item_type):
    item_ids = ItemData.get_item_ids(index, item_type)
    if not item_ids:
        abort(404)
    return render_template('itemtype.html', items=item_ids, item_type=item_type, index=index)
예제 #21
0
def data_item(index, item_type, data_id):
    item_id = ItemData.data_to_item('/'.join([index, item_type, data_id]))
    if not item_id:
        abort(404)
    return redirect(url_for('.item', item_id=item_id), code=307)