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)
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, [])
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)
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)
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}'})
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)
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
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)
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)
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)
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)
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)
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
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)
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)
def list_indexes(): indexes = ItemData.get_indexes() return render_template('indexes.html', indexes=indexes)
def list_indexes(): """Get list of indexes. :resheader Content-Type: *application/json* """ return jsonify(indexes=ItemData.get_indexes())
def show_data_item(data_id): """Show item ID given a data ID.""" print ItemData.data_to_item(data_id)
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)
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)
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)