Exemple #1
0
    def test_delete_by_item_id(self):
        links = ItemLink.query.all()
        assert len(links) == 0

        link_type = 'test'
        item_1 = Item.create()
        item_2 = Item.create()
        linked_item = Item.create()

        link_1 = ItemLink(type=link_type, item_id=item_1.id, linked_id=linked_item.id)
        link_2 = ItemLink(type=link_type, item_id=item_2.id, linked_id=linked_item.id)
        db.session.add(link_1)
        db.session.add(link_2)
        db.session.flush()

        links = ItemLink.query.all()
        assert len(links) == 2
        assert link_1 in links and link_2 in links

        ItemLink.delete_by_item_id(item_1.id)

        links = ItemLink.query.all()
        assert len(links) == 1
        assert link_1 not in links and link_2 in links

        ItemLink.delete_by_item_id(item_2.id)

        links = ItemLink.query.all()
        assert len(links) == 0
Exemple #2
0
    def test_delete(self):
        self.assertEqual(Item.query.count(), 0)

        item = Item()
        db.session.add(item)
        db.session.flush()
        self.assertEqual(Item.query.count(), 1)

        item.delete()
        self.assertEqual(Item.query.count(), 0)
Exemple #3
0
    def test_delete(self):
        items = Item.query.all()
        assert len(items) == 0

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

        items = Item.query.all()
        assert len(items) == 1

        item.delete()

        items = Item.query.all()
        assert len(items) == 0
Exemple #4
0
    def test_create(self):
        items = Item.query.all()
        assert len(items) == 0

        item_1 = Item.create('Type A')

        items = Item.query.all()
        assert len(items) == 1
        assert items[0] == item_1

        item_2 = Item.create('Type B')

        items = Item.query.all()
        assert len(items) == 2
        assert item_1 in items and item_2 in items
        assert item_1 != item_2
    def test_delete_by_item_id(self):
        self.assertEqual(ItemLink.query.count(), 0)

        linked_item = Item.create()

        link_1 = ItemLink(type=self.link_type, item_id=self.item_1.id, linked_id=linked_item.id)
        link_2 = ItemLink(type=self.link_type, item_id=self.item_2.id, linked_id=linked_item.id)
        db.session.add(link_1)
        db.session.add(link_2)
        db.session.flush()

        links = ItemLink.query.all()
        self.assertEqual(len(links), 2)
        self.assertIn(link_1, links)
        self.assertIn(link_2, links)

        ItemLink.delete_by_item_id(self.item_1.id)

        links = ItemLink.query.all()
        self.assertEqual(len(links), 1)
        self.assertNotIn(link_1, links)
        self.assertIn(link_2, links)

        ItemLink.delete_by_item_id(self.item_2.id)

        self.assertEqual(ItemLink.query.count(), 0)
Exemple #6
0
    def test_create(self):
        self.assertEqual(Item.query.count(), 0)

        item_1 = Item.create("Type A")

        items = Item.query.all()
        self.assertEqual(len(items), 1)
        self.assertEqual(items[0], item_1)

        item_2 = Item.create("Type B")

        items = Item.query.all()
        self.assertEqual(len(items), 2)
        self.assertIn(item_1, items)
        self.assertIn(item_2, items)
        self.assertNotEqual(item_1, item_2)
Exemple #7
0
def item_data(item_id):
    """Get item's data, links, and map.

    :resheader Content-Type: *application/json*
    """
    item = Item.get(item_id)
    if item is None:
        abort(404)
    return jsonify(item.to_dict())
Exemple #8
0
    def test_get(self):
        item = Item()
        db.session.add(item)
        db.session.flush()

        same_item = Item.get(item.id)
        self.assertEqual(item, same_item)

        missing_item = Editor.get("Unknown")
        self.assertIsNone(missing_item)
Exemple #9
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)
Exemple #10
0
    def test_get(self):
        item = Item()
        db.session.add(item)
        db.session.flush()

        same_item = Item.get(item.id)
        assert item == same_item

        missing_item = Editor.get('Unknown')
        assert missing_item is None
Exemple #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("/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)
Exemple #12
0
    def test_find_or_insert(self):
        links = ItemLink.query.all()
        assert len(links) == 0

        link_type = 'test'
        test_item_1 = Item.create()
        test_item_2 = Item.create()

        link_1 = ItemLink.find_or_insert(test_item_1.id, test_item_2.id, link_type)

        links = ItemLink.query.all()
        assert len(links) == 1
        assert links[0] == link_1

        link_2 = ItemLink.find_or_insert(test_item_1.id, test_item_2.id, link_type)

        links = ItemLink.query.all()
        assert len(links) == 1
        assert links[0] == link_2
        assert link_1 == link_2
    def test_delete(self):
        self.assertEqual(ItemRedirect.query.count(), 0)

        item = Item.create()
        redirect = ItemRedirect(old_id=42, new_id=item.id)
        db.session.add(redirect)
        db.session.flush()
        self.assertEqual(ItemRedirect.query.count(), 1)

        redirect.delete()
        self.assertEqual(ItemRedirect.query.count(), 0)
Exemple #14
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)
Exemple #15
0
    def test_item_links(self):
        item = Item.create()

        response = self.client.get("/api/1/item/%s/links" % item.id)
        self.assert200(response)
        response = self.client.get("/api/1/item/0%s/links" % item.id)
        self.assert200(response)

        response = self.client.get("/api/1/item/%s0/links" % item.id)
        self.assert404(response)
        response = self.client.get("/api/1/item/missing/links")
        self.assert404(response)
Exemple #16
0
    def test_item(self):
        item = Item.create()

        response = self.client.get("/item/%s" % item.id)
        self.assert200(response)
        response = self.client.get("/item/0%s" % item.id)
        self.assert200(response)

        response = self.client.get("/item/%s0" % item.id)
        self.assert404(response)
        response = self.client.get("/item/missing")
        self.assert404(response)
Exemple #17
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)
Exemple #18
0
    def test_item(self):
        item = Item.create()

        response = self.client.get("/api/1/item/%s" % item.id)
        self.assert200(response)
        response = self.client.get("/api/1/item/0%s" % item.id)
        self.assert200(response)
        self.assertEquals(response.json, item.to_dict())

        response = self.client.get("/api/1/item/%s0" % item.id)
        self.assert404(response)
        response = self.client.get("/api/1/item/missing")
        self.assert404(response)
Exemple #19
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)
    def test_delete(self):
        redirects = ItemRedirect.query.all()
        assert len(redirects) == 0

        item = Item.create()
        redirect = ItemRedirect(old_id=42, new_id=item.id)
        db.session.add(redirect)
        db.session.flush()

        redirects = ItemRedirect.query.all()
        assert len(redirects) == 1
        assert redirects[0] == redirect

        redirect.delete()

        redirects = ItemRedirect.query.all()
        assert len(redirects) == 0
    def setUp(self):
        super(ItemLinkTestCase, self).setUp()

        self.link_type = 'test'
        self.item_1 = Item.create()
        self.item_2 = Item.create()
Exemple #22
0
def show_item_map(item_id):
    item = Item.get(item_id).to_dict()
    data = map_item(item)
    print json.dumps({"data": data[0], "links": data[1]}, indent=4)
Exemple #23
0
def show_item(item_id):
    """Show data for an item given an ID."""
    print json.dumps(Item.get(item_id).to_dict(), indent=4)
Exemple #24
0
def add_data_item(data_id, data_type, data_filename):
    """Add or update a data item given a data ID, a type, and the data to use."""
    with open(data_filename) as f:
        data = f.read()
    item_id = geordi.data.add_data_item(data_id, data_type, data)
    print json.dumps(Item.get(item_id).to_dict(), indent=4)