def test_decoder(self): """Ensure decoded correctly decodes a known encoded number.""" from sosbeacon.utils import number_decode encoded = 'b6' number = number_decode(encoded) self.assertEqual(number, 123)
def test_inverse(self): """Ensure decode(encode(number)) == number over a range of numbers.""" from sosbeacon.utils import number_decode from sosbeacon.utils import number_encode for number in range(0, 500000, 339): encoded = number_encode(number) decoded = number_decode(encoded) self.assertEqual(number, decoded)
def get(self, event_id, method_id): from google.appengine.ext import ndb from sosbeacon import utils from sosbeacon.event.event import EVENT_STATUS_CLOSED event_id = utils.number_decode(event_id) method_id = str(utils.number_decode(method_id)) event_key = ndb.Key(Event, int(event_id), namespace='_x_') session_store = sessions.get_store() session = session_store.get_session() event_mc_key = 'Event:%s' % (int(event_id),) event_html = memcache.get(event_mc_key) if not event_html: event = event_key.get() if not event: memcache.set(event_mc_key, EVENT_DOES_NOT_EXIST) self.error(404) return event_html = self.render('event.mako', event=event) memcache.set(event_mc_key, event_html) if event_html == EVENT_DOES_NOT_EXIST: # Some one might be exploring. Lets not give them anything. self.error(404) return event = event_key.get() if event.status == EVENT_STATUS_CLOSED: if 'u' in session: self.redirect("/#eventcenter/view/%s" % event_key.get().key.urlsafe()) return else: event_html = self.render('event_closed.mako') self.response.out.write(event_html) return marker_key = ndb.Key( ContactMarker, "%s:%s" % (event_id, method_id), namespace='_x_') marker = marker_key.get() if not marker: if 'u' in session: self.redirect("/#eventcenter/view/%s" % event_key.get().key.urlsafe()) return else: logging.info("1") event_html = self.render('event.mako', event=event, contact_marker = False, contact_name="", timezone = "America/Los_Angeles") self.response.out.write(event_html) return if 'u' in session: self.redirect("/#eventcenter/view/%s" % event_key.get().key.urlsafe()) try: acknowledge_event(event_key, marker_key) except: # This is (relatively) non-critical, so log and ignore exceptions. logging.exception('Ack failed for marker %s.', marker_key) pass return if marker.place_holder: marker_key = marker.place_holder self.setup_session_marker(marker_key, event) event_html = self.render('event.mako', event=event, contact_marker = True, contact_name = marker.first_name + " " + marker.last_name, timezone = self.session.get('tz')) self.response.out.write(event_html) # Try to mark this event as acknowledged. try: acknowledge_event(event_key, marker_key) except: # This is (relatively) non-critical, so log and ignore exceptions. logging.exception('Ack failed for marker %s.', marker_key) pass
def get(self, event_id, method_id): from google.appengine.ext import ndb from sosbeacon import utils from sosbeacon.event.event import EVENT_STATUS_CLOSED event_id = utils.number_decode(event_id) method_id = str(utils.number_decode(method_id)) event_key = ndb.Key(Event, int(event_id), namespace='_x_') session_store = sessions.get_store() session = session_store.get_session() event_mc_key = 'Event:%s' % (int(event_id), ) event_html = memcache.get(event_mc_key) if not event_html: event = event_key.get() if not event: memcache.set(event_mc_key, EVENT_DOES_NOT_EXIST) self.error(404) return event_html = self.render('event.mako', event=event) memcache.set(event_mc_key, event_html) if event_html == EVENT_DOES_NOT_EXIST: # Some one might be exploring. Lets not give them anything. self.error(404) return event = event_key.get() if event.status == EVENT_STATUS_CLOSED: if 'u' in session: self.redirect("/#eventcenter/view/%s" % event_key.get().key.urlsafe()) return else: event_html = self.render('event_closed.mako') self.response.out.write(event_html) return marker_key = ndb.Key(ContactMarker, "%s:%s" % (event_id, method_id), namespace='_x_') marker = marker_key.get() if not marker: if 'u' in session: self.redirect("/#eventcenter/view/%s" % event_key.get().key.urlsafe()) return else: logging.info("1") event_html = self.render('event.mako', event=event, contact_marker=False, contact_name="", timezone="America/Los_Angeles") self.response.out.write(event_html) return if 'u' in session: self.redirect("/#eventcenter/view/%s" % event_key.get().key.urlsafe()) try: acknowledge_event(event_key, marker_key) except: # This is (relatively) non-critical, so log and ignore exceptions. logging.exception('Ack failed for marker %s.', marker_key) pass return if marker.place_holder: marker_key = marker.place_holder self.setup_session_marker(marker_key, event) event_html = self.render('event.mako', event=event, contact_marker=True, contact_name=marker.first_name + " " + marker.last_name, timezone=self.session.get('tz')) self.response.out.write(event_html) # Try to mark this event as acknowledged. try: acknowledge_event(event_key, marker_key) except: # This is (relatively) non-critical, so log and ignore exceptions. logging.exception('Ack failed for marker %s.', marker_key) pass