def simple_strategy_update(simple_strategy_update_fake_column): return UpdateColumnsTableStrategy("update_table_where_3", [ UniqueEmailUpdateColumnStrategy("column1", where="BANANAS < 5"), UniqueLoginUpdateColumnStrategy("column2", where="BANANAS < 5"), simple_strategy_update_fake_column, EmptyUpdateColumnStrategy("column4") ])
def __parse_update_column(self, column_config): update_column_type = UpdateColumnStrategyTypes.from_value( column_config.pop("type")) try: if update_column_type == UpdateColumnStrategyTypes.EMPTY: return EmptyUpdateColumnStrategy(**column_config) elif update_column_type == UpdateColumnStrategyTypes.UNIQUE_LOGIN: return UniqueLoginUpdateColumnStrategy(**column_config) elif update_column_type == UpdateColumnStrategyTypes.UNIQUE_EMAIL: return UniqueEmailUpdateColumnStrategy(**column_config) elif update_column_type == UpdateColumnStrategyTypes.FAKE_UPDATE: return FakeUpdateColumnStrategy( fake_column_generator=self.fake_seeder, **column_config) elif update_column_type == UpdateColumnStrategyTypes.LITERAL: return LiteralUpdateColumnStrategy(**column_config) else: raise UnknownColumnStrategyError(column_config) except TypeError as error: # TypeError can be thrown when the dict args dont match the constructors for the types. We need to re-throw raise ConfigSyntaxError()
def test_empty_where(): empty_where = EmptyUpdateColumnStrategy(column_name="empty_column", where="`cheese` = 'gouda'") assert empty_where.strategy_type == UpdateColumnStrategyTypes.EMPTY assert empty_where.where_condition == "`cheese` = 'gouda'"
def test_empty(): empty = EmptyUpdateColumnStrategy(column_name="empty_column") assert empty.strategy_type == UpdateColumnStrategyTypes.EMPTY assert empty.where_condition == None
def empty_strategy(): return EmptyUpdateColumnStrategy("test_column3")