Exemplo n.º 1
0
 def test_no_item_record(self):
     # can we get location from holdings record when no item exists?
     a = get_availability('12967951')
     self.assertEqual(a['offers'][0]['availability'],
                      'http://schema.org/InStock')
     self.assertEqual(a['offers'][0]['availabilityAtOrFrom'],
                      'Lib Special Collections')
Exemplo n.º 2
0
def availability(request):
    """
    API call for getting the availability for a particular bibid.
    """
    bibid = request.GET.get('bibid')
    if not bibid:
        raise Http404
    return HttpResponse(
        json.dumps(db.get_availability(bibid), indent=2),
        content_type='application/json'
    )
Exemplo n.º 3
0
    def test_availability_georgetown(self):
        a = get_availability('b10086948')
        self.assertEqual(a['wrlc'], '4218864')
        self.assertEqual(a['summon'], 'b10086948')

        self.assertEqual(len(a['offers']), 1)
        o = a['offers'][0]
        self.assertEqual(o['@type'], 'Offer')
        self.assertEqual(o['seller'], 'Georgetown')
        self.assertEqual(o['sku'], 'PR6019.O9 F45 1959')
        self.assertTrue(o['availability'] in availability)
Exemplo n.º 4
0
    def test_availability_georgemason(self):
        a = get_availability('m55883')
        self.assertEqual(a['wrlc'], '1560207')
        self.assertEqual(a['summon'], 'm55883')

        self.assertEqual(len(a['offers']), 1)
        o = a['offers'][0]
        self.assertEqual(o['@type'], 'Offer')
        self.assertEqual(o['seller'], 'George Mason')
        self.assertEqual(o['sku'], 'PR6019.O9 F5')
        self.assertTrue(o['availability'] in availability)
Exemplo n.º 5
0
    def test_availability_georgetown(self):
        a = get_availability('b10086948')
        self.assertEqual(a['wrlc'], '4218864')
        self.assertEqual(a['summon'], 'b10086948')

        self.assertEqual(len(a['offers']), 1)
        o = a['offers'][0]
        self.assertEqual(o['@type'], 'Offer')
        self.assertEqual(o['seller'], 'Georgetown')
        self.assertEqual(o['sku'], 'PR6019.O9 F45 1959')
        self.assertTrue(o['availability'] in availability)
Exemplo n.º 6
0
    def test_availability_georgemason(self):
        a = get_availability('m55883')
        self.assertEqual(a['wrlc'], '1560207')
        self.assertEqual(a['summon'], 'm55883')

        self.assertEqual(len(a['offers']), 1)
        o = a['offers'][0]
        self.assertEqual(o['@type'], 'Offer')
        self.assertEqual(o['seller'], 'George Mason')
        self.assertEqual(o['sku'], 'PR6019.O9 F5')
        self.assertTrue(o['availability'] in availability)
Exemplo n.º 7
0
    def test_availability(self):
        a = get_availability('5769326')
        self.assertEqual(a['wrlc'], '5769326')
        self.assertEqual(len(a['offers']), 1)

        o = a['offers'][0]
        self.assertEqual(o['@type'], 'Offer')
        self.assertEqual(o['seller'], 'George Washington')
        self.assertEqual(o['availabilityAtOrFrom'].lower(), 'gelman stacks')
        self.assertEqual(o['sku'], 'PR6019.O9 F5 1999')
        self.assertTrue(o['availability'] in availability)
        self.assertEqual(o['serialNumber'], '3927007')
        self.assertTrue(o['description'])
Exemplo n.º 8
0
    def test_availability(self):
        a = get_availability('5769326')
        self.assertEqual(a['wrlc'], '5769326')
        self.assertEqual(len(a['offers']), 1)

        o = a['offers'][0]
        self.assertEqual(o['@type'], 'Offer')
        self.assertEqual(o['seller'], 'George Washington')
        self.assertEqual(o['availabilityAtOrFrom'].lower(), 'gelman stacks')
        self.assertEqual(o['sku'], 'PR6019.O9 F5 1999')
        self.assertTrue(o['availability'] in availability)
        self.assertEqual(o['serialNumber'], '3927007')
        self.assertTrue(o['description'])
Exemplo n.º 9
0
 def test_temp_location(self):
     # get a bib_id for something that's in temp location to make sure
     # that availabilityAtOrFrom uses that instead of the permanent location
     q = """
         SELECT bib_id, item.item_id
         FROM bib_mfhd, mfhd_item, item
         WHERE ROWNUM = 1
           AND item.temp_location = 682
           AND item.item_id = mfhd_item.item_id
           AND mfhd_item.mfhd_id = bib_mfhd.mfhd_id
         """
     bib_id, item_id = _fetch_one(q)
     a = get_availability(str(bib_id))
     for o in a['offers']:
         if 'serialNumber' in o and o['serialNumber'] == str(item_id):
             self.assertEqual(o['availabilityAtOrFrom'].lower(),
                              'wrlc shared collections facility')
Exemplo n.º 10
0
 def test_temp_location(self):
     # get a bib_id for something that's in temp location to make sure
     # that availabilityAtOrFrom uses that instead of the permanent location
     q = """
         SELECT bib_id, item.item_id
         FROM bib_mfhd, mfhd_item, item
         WHERE ROWNUM = 1
           AND item.temp_location = 682
           AND item.item_id = mfhd_item.item_id
           AND mfhd_item.mfhd_id = bib_mfhd.mfhd_id
         """
     bib_id, item_id = _fetch_one(q)
     a = get_availability(str(bib_id))
     for o in a['offers']:
         if 'serialNumber' in o and o['serialNumber'] == str(item_id):
             self.assertEqual(
                 o['availabilityAtOrFrom'].lower(),
                 'wrlc shared collections facility'
             )
Exemplo n.º 11
0
 def test_checked_out(self):
     # get a bib_id for something that's checked out
     # 2382-12-31 due dates are indicators that the item
     # is in offsite storage
     q = """
         SELECT bib_id, circ_transactions.circ_transaction_id
         FROM bib_mfhd, mfhd_item, item, circ_transactions
         WHERE ROWNUM = 1
           AND circ_transactions.charge_due_date IS NOT NULL
           AND circ_transactions.charge_due_date < TO_DATE('2382-12-31', 'YYYY-MM-DD')
           AND circ_transactions.item_id = item.item_id
           AND item.item_id = mfhd_item.item_id
           AND mfhd_item.mfhd_id = bib_mfhd.mfhd_id
         """
     bib_id, circ_id = _fetch_one(q)
     a = get_availability(str(bib_id))
     found = False
     for offer in a['offers']:
         if 'availabilityStarts' in offer:
             found = True
     self.assertTrue(found)
Exemplo n.º 12
0
 def test_checked_out(self):
     # get a bib_id for something that's checked out
     # 2382-12-31 due dates are indicators that the item
     # is in offsite storage
     q = """
         SELECT bib_id, circ_transactions.circ_transaction_id
         FROM bib_mfhd, mfhd_item, item, circ_transactions
         WHERE ROWNUM = 1
           AND circ_transactions.charge_due_date IS NOT NULL
           AND circ_transactions.charge_due_date < TO_DATE('2382-12-31', 'YYYY-MM-DD')
           AND circ_transactions.item_id = item.item_id
           AND item.item_id = mfhd_item.item_id
           AND mfhd_item.mfhd_id = bib_mfhd.mfhd_id
         """
     bib_id, circ_id = _fetch_one(q)
     a = get_availability(str(bib_id))
     found = False
     for offer in a['offers']:
         if 'availabilityStarts' in offer:
             found = True
     self.assertTrue(found)
Exemplo n.º 13
0
 def test_availability_no_bib_record(self):
     # this bibid is a legit georgetown id but we have no bib record
     a = get_availability('b29950983')
     self.assertEqual(a['offers'][0]['seller'], 'Georgetown')
Exemplo n.º 14
0
 def test_no_item_record(self):
     # can we get location from holdings record when no item exists?
     a = get_availability('12967951')
     self.assertEqual(a['offers'][0]['availability'], 'http://schema.org/InStock')
     self.assertEqual(a['offers'][0]['availabilityAtOrFrom'],
                      'Lib Special Collections')
Exemplo n.º 15
0
 def handle(self, *args, **options):
     if len(args) >= 1:
         bibid = args[0]
         print json.dumps(db.get_availability(bibid), indent=2)
Exemplo n.º 16
0
 def test_availability_no_bib_record(self):
     # this bibid is a legit georgetown id but we have no bib record
     a = get_availability('b29950983')
     self.assertEqual(a['offers'][0]['seller'], 'Georgetown')