def store(self, request): if 'select' in request.function.__name__: # MemoryStore does not implement select, use CSVStore instead # use tmpdir fixture as a context manager with contextmanager(tempdir)() as directory: yield StoreView(CSVStore(directory), self.prefix) else: yield StoreView(MemoryStore(), self.prefix)
def test_append(self, frame): pidx = Parameter('idx') coords = ParameterList((pidx, )) store = MeasurementStore(MemoryStore(), '/data', coords) for idx in range(5): pidx.set(idx) store.append(frame) for idx in range(5): pidx.set(idx) pframe = store.get().loc[(idx, slice(None), slice(None)), :] self.check_coords(frame, pframe, coords)
def nested_store(self, request): prefixes = request.param[0].split('/') namess = request.param[1:] self.coords = ParameterList() store = MemoryStore() for prefix, names in zip(prefixes, namess): coords = ParameterList( Parameter(name, value=name) for name in names) store = MeasurementStore(store, prefix=prefix, coordinates=coords) self.coords.extend(coords) return store
def test_on_new_item(self, frame): self.new_item_count = 0 def on_new_item(store, key): self.new_item_count += 1 MeasurementStore.on_new_item.append(on_new_item) store = MeasurementStore(MemoryStore(), '/data', ParameterList()) store.append(frame) assert self.new_item_count == 1, 'on_new_item did not fire' store.append(frame) assert self.new_item_count == 1, 'on_new_item fired more than once'
def test_prepend_coordinates(self, frame, names): coords = ParameterList([Parameter(name, value=name) for name in names]) store = MeasurementStore(MemoryStore(), '/data', coords) self.check_coords(frame, store._prepend_coordinates(frame), coords)
def test_title_arg(self): # title arg should be supported by all stores title = 'My title.' MemoryStore(title=title)
def store(self): return MemoryStore()