def test_forceUpdateForInput(): test_input_data = (input_data.InputData(1, 'createAll'), input_data.InputData(2, 'createAll')) with session_scope() as session: for test_input_datum in test_input_data: session.add(test_input_datum) with session_scope() as session: test_input_data = session.query(input_data.InputData).filter(input_data.InputData.dataset_name == 'createAll').all() for test_input_datum in test_input_data: session.expunge(test_input_datum) input_data_list = {} for test_input_datum in test_input_data: input_data_list[test_input_datum.id] = [1, 2, 3] FeatureValueHelper.createAll(input_data_list) for test_input_datum in test_input_data: value = TestFeatureCalculate().getValue(test_input_datum) assert value.value == [1,2,3] FeatureValueHelper.forceUpdateForInput(test_input_data[0].id, [1]) value = TestFeatureCalculate().getValue(test_input_data[0]) assert value.value == [1]
def test_persistence(): testfeature = feature.Feature('test') with session_scope() as session: session.add(testfeature) with session_scope() as session: testfeature = session.query(feature.Feature).order_by( feature.Feature.id.desc()).first() session.expunge(testfeature) assert testfeature.name == 'test' assert testfeature.id != None
def createAllForInput(self, input_data_id, values): subclasses = BaseFeatureRecord.__subclasses__() for subclass in subclasses: with session_scope() as session: input_instance = BaseInputDataRepository().get( session, input_data_id) feature = subclass() feature.setInputDataValues(values) feature.getOrCreateValue(input_instance) with session_scope() as session: input_instance = BaseInputDataRepository().get( session, input_data_id)
def test_persistence(): test_input_data = InputData(1234, 'datasetTest') with session_scope() as session: session.add(test_input_data) with session_scope() as session: test_input_data = session.query(InputData).filter( InputData.external_id == 1234, InputData.dataset_name == 'datasetTest').first() session.expunge(test_input_data) assert test_input_data.external_id == 1234 assert test_input_data.dataset_name == 'datasetTest' assert test_input_data.id != None
def getOrCreateValue(self, input_data): featureValue = self.getValue(input_data) if featureValue is None: with session_scope() as session: value = self.calculate(input_data) BaseFeatureRepository().createValue(session, self._class, input_data, value)
def forceUpdateForInput(self, input_data_id, values): subclasses = BaseFeatureRecord.__subclasses__() with session_scope() as session: input_data = BaseInputDataRepository().get(session, input_data_id) for subclass in subclasses: feature = subclass() feature.setInputDataValues(values) feature.createValue(input_data)
def getAll(self, input_data_ids): subclasses = BaseFeatureRecord.__subclasses__() return_value = {} with session_scope() as session: for subclass in subclasses: feature = subclass() return_value[feature._class] = feature.getInputDataValues( input_data_ids) return return_value
def test_createAll(): test_input_data = (input_data.InputData(1, 'createAll'), input_data.InputData(2, 'createAll')) with session_scope() as session: for test_input_datum in test_input_data: session.add(test_input_datum) with session_scope() as session: test_input_data = session.query(input_data.InputData).filter(input_data.InputData.dataset_name == 'createAll').all() for test_input_datum in test_input_data: session.expunge(test_input_datum) input_data_list = {} for test_input_datum in test_input_data: input_data_list[test_input_datum.id] = [1, 2, 3] FeatureValueHelper.createAll(input_data_list) for test_input_datum in test_input_data: value1 = TestFeature1().getValue(test_input_datum) value2 = TestFeature2().getValue(test_input_datum) assert value1.value == [1] assert value2.value == [2]
def test_getValue(): test_feature = TestFeature() feature = test_feature.getModel() input_data_test = input_data.InputData(1234, 'datasetTest') feature_value_first = feature_value.FeatureValue([9], feature, input_data_test) with session_scope() as session: session.add(feature_value_first) feature = test_feature.getModel() assert feature.feature_values != None feature_value_second = feature_value.FeatureValue([10], feature, input_data_test) with session_scope() as session: session.add(feature_value_second) with session_scope() as session: input_data_test = session.query(input_data.InputData).order_by(-input_data.InputData.id).first() session.expunge(input_data_test) result = test_feature.getValue(input_data_test) assert result.value == [10.0]
def createValue(self, input_data): with session_scope() as session: value = self.calculate(input_data) BaseFeatureRepository().createValue(session, self._class, input_data, value)
def getValue(self, input_data): with session_scope() as session: return BaseFeatureRepository().getValue(session, self._class, input_data)
def getOrCreateModel(self): model = self.getModel() if model is None: with session_scope() as session: model = create(self, session, self._class) return model
def getModel(self): with session_scope() as session: return BaseFeatureRepository().get(session, self._class)
def __init__(self): if (self.getModel() == None): with session_scope() as session: BaseFeatureRepository().create(session, self._class)