def __init__(self, o): self._os = o self._family = self._os and self._os.get_family() or None self.name = self._os and self._os.get_short_id() or "generic" self.label = self._os and self._os.get_name() or "Generic" self.codename = self._os and self._os.get_codename() or "" self.distro = self._os and self._os.get_distro() or "" self.eol = False eol = self._os and self._os.get_eol_date() or None rel = self._os and self._os.get_release_date() or None # End of life if an EOL date is present and has past, # or if the release date is present and was 5 years or more if eol is not None: now = GLib.Date() now.set_time_t(time.time()) if eol.compare(now) < 0: self.eol = True elif rel is not None: then = GLib.Date() then.set_time_t(time.time()) then.subtract_years(5) if rel.compare(then) < 0: self.eol = True self.sortby = self._get_sortby() self.urldistro = self._get_urldistro() self._supported = None
def _get_eol(self): eol = self._os and self._os.get_eol_date() or None rel = self._os and self._os.get_release_date() or None # End of life if an EOL date is present and has past, # or if the release date is present and was 5 years or more if eol is not None: now = GLib.Date() now.set_time_t(time.time()) if eol.compare(now) < 0: return True elif rel is not None: then = GLib.Date() then.set_time_t(time.time()) then.subtract_years(5) if rel.compare(then) < 0: return True return False
def enroll_print(self, image): self._step = 0 self._enrolled = None def progress_cb(dev, step, fp, user_data): print('Print was processed, continuing') self._step = step def done_cb(dev, res): print("Enroll done") fp = dev.enroll_finish(res) self._enrolled = fp template = FPrint.Print.new(self.dev) template.props.finger = FPrint.Finger.LEFT_THUMB template.props.username = "******" template.props.description = "test print" datetime = GLib.DateTime.new_now_local() date = GLib.Date() date.set_dmy(*datetime.get_ymd()[::-1]) template.props.enroll_date = date self.dev.enroll(template, None, progress_cb, tuple(), done_cb) # Note: Assumes 5 enroll steps for this device! self.send_image(image) while self._step < 1: ctx.iteration(True) # Test the image-device path where the finger is removed after # the minutiae scan is completed. self.send_finger_automatic(False) self.send_finger_report(True) self.send_image(image) while self._step < 2: ctx.iteration(True) self.send_finger_report(False) self.send_finger_automatic(True) self.send_image(image) while self._step < 3: ctx.iteration(True) self.send_image(image) while self._step < 4: ctx.iteration(True) self.send_image(image) while self._enrolled is None: ctx.iteration(True) return self._enrolled
def test_verify_serialized(self): done = False def verify_cb(dev, res): r, fp = dev.verify_finish(res) self._verify_match = r self._verify_fp = fp fp_whorl = self.enroll_print('whorl') fp_data = fp_whorl.serialize() fp_whorl_new = FPrint.Print.deserialize(fp_data) # The serialized/deserialized prints need to be equal assert fp_whorl.equal(fp_whorl_new) datetime = GLib.DateTime.new_now_local() date = GLib.Date() date.set_dmy(*datetime.get_ymd()[::-1]) assert fp_whorl_new.props.username == "testuser" assert fp_whorl_new.props.description == "test print" assert fp_whorl_new.props.finger == FPrint.Finger.LEFT_THUMB assert date.compare(fp_whorl_new.props.enroll_date) == 0 self._verify_match = None self._verify_fp = None self.dev.verify(fp_whorl_new, callback=verify_cb) self.send_image('whorl') while self._verify_match is None: ctx.iteration(True) assert (self._verify_match) self._verify_match = None self._verify_fp = None self.dev.verify(fp_whorl_new, callback=verify_cb) self.send_image('tented_arch') while self._verify_match is None: ctx.iteration(True) assert (not self._verify_match)