def test_update_image(self): response = self.post("/admin/api/v1/statuses/foo", data={"image": "cross-circle"}) self.assertEquals(response.status_code, 200) status = Status.get(self.status.key()) self.assertEquals(status.image, "fugue/cross-circle.png")
def post(self): """Notify subscribers that a service changed status.""" address = self.request.get('address') service = Service.get(self.request.get('service')) oldstatus = Status.get(self.request.get('oldstatus')) number = self.request.get('number') logging.info("Service: %s" % service) logging.info("Service name: %s" % service.name) msg = "%s changed state from %s to %s (%s)" % ( service.name, oldstatus.name, service.current_event().status.name, service.current_event().message) user = Subscription.get_by_email(address) if user.status == "available" or not number: status_code = xmpp.send_message(address, msg) chat_message_sent = (status_code == xmpp.NO_ERROR) logging.info("Notified: %s\nmessage: %s code: %d" % (address, msg, status_code)) elif user.status == "unavailable" and number: sms = smsgw(to = number, msg = msg) sms.send() logging.info("Offline SMS: %s\nmessage: %s" % (number, msg))
def test_update_default(self): response = self.post("/admin/api/v1/statuses/foo", data={"default": "true"}) self.assertEquals(response.status_code, 200) status = Status.get(self.status.key()) self.assertTrue(status.default)
def test_delete_success(self): response = self.delete("/admin/api/v1/statuses/foo") self.assertEquals(response.status_code, 200) self.assertEquals(response.headers["Content-Type"], "application/json") status = Status.get(self.status.key()) self.assertEquals(status, None)
def post(self): data = json_decode(self.request.body) schema = { # TODO get customer_id from session # and set like an additional(not required) field # if auth user is booking a room for third-part person 'customer_id': { 'type': 'integer', 'required': True}, 'room_id': { 'type': 'integer', 'required': True}, 'from_date': { 'type': 'string', 'required': True}, 'to_date': { 'type': 'string', 'required': True}, } if not self.valid_data(schema, data): return customer_id = data['customer_id'] room_id = data['room_id'] from_date = parse_date(data['from_date']) to_date = parse_date(data['to_date']) room = Room.get_available_between_dates_by_id(room_id, from_date.isoformat(), to_date.isoformat()) if not room: self.set_response( content={'message': ('The room with id {} is not available ' 'for booking from {} to {}').format(room_id, from_date, to_date)}, status=404) return # TODO add payment system # change on next step with payment system status = Status.get(name='reserved') # TODO get customer_id from session try: customer = Customer.get(id=customer_id) except Customer.DoesNotExist: self.set_response( {'message': 'Customer with id {} not found'.format(customer_id)}, status=400) return booking = Booking.create( room=room, customer=customer, from_date=from_date, to_date=to_date, status=status) self.set_response( content=dict(booking=model_to_dict(booking)), status=201, headers={'Location': self.reverse_url('booking', booking.id)} )
def test_update_name(self): response = self.post("/admin/api/v1/statuses/foo", data={"name": "Foobar"}) self.assertEquals(response.status_code, 200) self.assertEquals(response.headers["Content-Type"], "application/json") status = Status.get(self.status.key()) self.assertEquals(status.name, "Foobar")
def test_update_description(self): response = self.post("/admin/api/v1/statuses/foo", data={"description": "blah"}) self.assertEquals(response.status_code, 200) self.assertEquals(response.headers["Content-Type"], "application/json") status = Status.get(self.status.key()) self.assertEquals(status.description, "blah")
def get(self, key): try: status = Status.get(key) user = users.get_current_user() if status.user == user: delete_status(status) except Exception: raise self.redirect('/')
def get(self, key): try: status = Status.get(key) user = users.get_current_user() if status.user == user: self.render_response('status.html', { 'status': status }) else: self.redirect('/') except Exception: raise
def test_delete_success(self): response = self.delete("/admin/api/v1/statuses/foo") self.assertEquals(response.status_code, 200) self.assertEquals(response.headers["Content-Type"], "application/json") data = json.loads(response.content) self.assertEquals(data['url'], 'http://localhost:80/admin/api/v1/statuses/foo') status = Status.get(self.status.key()) self.assertEquals(status, None)