def test_literal(): literal = LiteralUpdateColumnStrategy(column_name="column_name", value="52") assert literal.strategy_type == UpdateColumnStrategyTypes.LITERAL assert literal.where_condition == None assert literal.value == "52"
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_literal_where(): literal_where = LiteralUpdateColumnStrategy( column_name="column_name", value="RAND()", where="cake = 'death' OR gravel > 3") assert literal_where.strategy_type == UpdateColumnStrategyTypes.LITERAL assert literal_where.where_condition == "cake = 'death' OR gravel > 3" assert literal_where.value == "RAND()"
def test_get_update_table_literal(literal_strategy): result_queries = query_factory.get_update_table("seed_table", UpdateColumnsTableStrategy("anon_table", [ LiteralUpdateColumnStrategy("literal_column", "RANDOM()") ])) assert result_queries == [ "UPDATE anon_table AS \"updatetarget\" SET \"literal_column\" = RANDOM();" ]
def test_get_update_table_literal(literal_strategy): result_queries = query_factory.get_update_table( "seed_table", UpdateColumnsTableStrategy( "anon_table", [LiteralUpdateColumnStrategy("literal_column", "RAND()")])) assert result_queries == [ "UPDATE `anon_table` SET `literal_column` = RAND();" ]
def test_get_update_table_literal(literal_strategy): result_queries = query_factory.get_update_table( "seed_table", UpdateColumnsTableStrategy( "anon_table", [LiteralUpdateColumnStrategy("literal_column", "RANDOM()")] ), ) assert result_queries == [ 'UPDATE "anon_table" AS "updatetarget" SET "literal_column" = RANDOM();' ]
def literal_strategy(): return LiteralUpdateColumnStrategy("test_column6", value="RANDOM()")