def test_find_bill(): # simplest case db.bills.insert({'bill_id': 'HB 1', 'alternate_bill_ids': []}) assert utils.find_bill({'bill_id': 'HB 1'})['bill_id'] == 'HB 1' # asking for HB/SB 2 db.bills.insert({'bill_id': 'HB 2', 'alternate_bill_ids': ['SB 2']}) assert utils.find_bill({'bill_id': 'HB 2'})['bill_id'] == 'HB 2' assert utils.find_bill({'bill_id': 'SB 2'})['bill_id'] == 'HB 2' # asking for HB 4 should get HB 4, not 3 db.bills.insert({'bill_id': 'HB 3', 'alternate_bill_ids': ['HB 4']}) db.bills.insert({'bill_id': 'HB 4', 'alternate_bill_ids': []}) assert utils.find_bill({'bill_id': 'HB 4'})['bill_id'] == 'HB 4'
def test_find_bill(): # simplest case db.bills.insert({"bill_id": "HB 1", "alternate_bill_ids": []}) assert utils.find_bill({"bill_id": "HB 1"})["bill_id"] == "HB 1" # asking for HB/SB 2 db.bills.insert({"bill_id": "HB 2", "alternate_bill_ids": ["SB 2"]}) assert utils.find_bill({"bill_id": "HB 2"})["bill_id"] == "HB 2" assert utils.find_bill({"bill_id": "SB 2"})["bill_id"] == "HB 2" # asking for HB 4 should get HB 4, not 3 db.bills.insert({"bill_id": "HB 3", "alternate_bill_ids": ["HB 4"]}) db.bills.insert({"bill_id": "HB 4", "alternate_bill_ids": []}) assert utils.find_bill({"bill_id": "HB 4"})["bill_id"] == "HB 4"
def read(self, request, abbr=None, session=None, bill_id=None, chamber=None, billy_bill_id=None): if billy_bill_id: query = {'_id': billy_bill_id} else: abbr = abbr.lower() query = { settings.LEVEL_FIELD: abbr, 'session': session, 'bill_id': bill_id } if chamber: query['chamber'] = chamber.lower() fields = _build_field_list(request) bill = find_bill(query, fields=fields) vote_fields = _get_vote_fields(fields) # include votes if no fields are specified, if it is specified, or # if subfields are specified if bill and (not fields or 'votes' in fields or vote_fields): bill['votes'] = list( db.votes.find({'bill_id': bill['_id']}, fields=vote_fields)) return bill
def bill(request, abbr, session, id): meta = metadata(abbr) level = meta['level'] bill = find_bill({'level': level, level: abbr, 'session':session, 'bill_id':id.upper()}) if not bill: raise Http404 return render(request, 'billy/bill.html', {'bill': bill, 'metadata': meta, 'id': bill['_id']})
def read(self, request, abbr=None, session=None, bill_id=None, chamber=None, billy_bill_id=None): if billy_bill_id: query = {'_id': billy_bill_id} else: abbr = abbr.lower() level = metadata(abbr)['level'] query = {level: abbr, 'session': session, 'bill_id': bill_id} if chamber: query['chamber'] = chamber.lower() return find_bill(query, fields=_build_field_list(request))
def bill(request, abbr, session=None, id=None, billy_id=None): meta = metadata(abbr) if billy_id: bill = db.bills.find_one({'_id': billy_id}) else: bill = find_bill({settings.LEVEL_FIELD: abbr, 'session': session, 'bill_id': id.upper()}) if not bill: msg = 'No bill found in {name} session {session!r} with id {id!r}.' raise Http404(msg.format(name=meta['name'], session=session, id=id)) else: votes = db.votes.find({'bill_id': bill['_id']}) return render(request, 'billy/bill.html', {'bill': bill, 'metadata': meta, 'votes': votes, 'id': bill['_id']})
def bill(request, abbr, session, id): meta = metadata(abbr) level = meta['level'] bill = find_bill({ 'level': level, level: abbr, 'session': session, 'bill_id': id.upper() }) if not bill: raise Http404 return render(request, 'billy/bill.html', { 'bill': bill, 'metadata': meta, 'id': bill['_id'] })
def read(self, request, abbr=None, session=None, bill_id=None, chamber=None, billy_bill_id=None): if billy_bill_id: query = {'_id': billy_bill_id} else: abbr = abbr.lower() query = {settings.LEVEL_FIELD: abbr, 'session': session, 'bill_id': bill_id} if chamber: query['chamber'] = chamber.lower() fields = _build_field_list(request) bill = find_bill(query, fields=fields) vote_fields = _get_vote_fields(fields) # include votes if no fields are specified, if it is specified, or # if subfields are specified if not fields or 'votes' in fields or vote_fields: bill['votes'] = list(db.votes.find({'bill_id': bill['_id']}, fields=vote_fields)) return bill