def connect_routes(dispatcher): """This function takes the dispatcher and attaches the routes. :param dispatcher: The CherryPy dispatcher. """ # controller instances map controllers = { 'root': Root(), 'calculations': Calculations(), 'datasets': Datasets(), 'version': Version(), } # map them into args to dispatcher dictify = lambda x: dict(zip(['name', 'conditions', 'route', 'controller', 'action'], x)) route_case = { 'conditions': lambda v: dict(method=v), 'controller': lambda v: controllers[v], } kwarg_map = lambda d: { k: route_case.get(k, lambda v: v)(v) for k, v in d.iteritems() } routes = [kwarg_map(dictify(route)) for route in ROUTES + options()] # attach them for route in routes: dispatcher.connect(**route)
def setUp(self): TestBase.setUp(self) self.controller = Calculations() self.dataset_controller = Datasets() self.dataset_id = None self.formula = 'amount + gps_alt' self.name = 'test'
def _post_calculations(self, formulae=[], group=None): schema = self._load_schema() controller = Calculations() for idx, formula in enumerate(formulae): name = 'calc_%d' % idx if not schema or\ formula in schema.keys() else formula controller.create(self.dataset_id, formula=formula, name=name, group=group)
def setUp(self): TestAbstractDatasetsUpdate.setUp(self) self._create_original_datasets() # create aggregated datasets self.calculations = Calculations() self.name1 = 'sum of amount' self.formula1 = 'sum(amount)' self.calculations.create(self.dataset2_id, self.formula1, self.name1) result = json.loads( self.controller.aggregations(self.dataset2_id)) self.aggregated_dataset1_id = result[''] # create merged datasets result = json.loads(self.controller.merge(dataset_ids=json.dumps( [self.dataset1_id, self.dataset2_id]))) self.merged_dataset1_id = result[Dataset.ID] result = json.loads(self.controller.merge(dataset_ids=json.dumps( [self.merged_dataset1_id, self.aggregated_dataset1_id]))) self.merged_dataset2_id = result[Dataset.ID]
def _add_common_calculations(self): self.calculations = Calculations() self.calculations.create(self.dataset2_id, 'amount + gps_alt', 'amount plus gps_alt')