def test_user_registration(self): username = '******'.format(uuid.uuid4()) password = '******' try: s = Service(self.SERVICE.root, username, password) s.deregister(s.get_deregistration_token()) except: pass s = self.SERVICE.register(username, password) self.assertEqual(s.root, self.SERVICE.root) self.assertEqual(2, len(s.get_all_lists())) drt = s.get_deregistration_token() s.deregister(drt) self.assertRaises(WebserviceError, s.get_all_lists)
def attack(self): service = Service(self.service.root) self.counter.add(2) lists = list(l for l in service.get_all_lists() if l.size and l.status == 'CURRENT') Lists.LOG.debug("%d lists", len(lists)) self.counter.add(1) target = random.choice(lists) classkeys = None with closing(service.opener.open(service.root + "/classkeys")) as sock: classkeys = json.loads(sock.read())['classes'] Lists.LOG.debug("Classkeys for %s are %r", target.name, classkeys[target.list_type]) self.counter.add(1) q = service.query(target.list_type).where(target.list_type, 'IN', target.name) index = random.randint(0, target.size - 1) rand_member = next(q.rows(size = 1, start = index)) self.counter.add(1) Lists.LOG.debug(rand_member) target_keys = classkeys[target.list_type] if target_keys: lu_q = q.where(target.list_type, 'LOOKUP', rand_member[target_keys[0]]) Lists.LOG.debug("lookup q: %s", lu_q) Lists.LOG.debug("%s should be one", lu_q.count()) self.counter.add(1) suitable_widgets = list(w for w in service.widgets.values() if w['widgetType'] == 'enrichment' and target.list_type in w['targets']) self.counter.add(1) if not suitable_widgets: return widget = random.choice(suitable_widgets) Lists.LOG.debug("Calculating %s of %s", widget['name'], target.name) enriched = list(target.calculate_enrichment(widget['name'])) self.counter.add(1) if enriched: Lists.LOG.debug(enriched[0])
def testListsFromFlyMine(self): s = Service("www.flymine.org/query") all_lists = s.get_all_lists() possible_statuses = set(["CURRENT", "TO_UPGRADE", "NOT_CURRENT"]) got = set((l.status for l in all_lists)) self.assertTrue(got <= possible_statuses)