Ejemplo n.º 1
0
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"
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
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()"
Ejemplo n.º 4
0
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();"
    ]
Ejemplo n.º 5
0
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();"
    ]
Ejemplo n.º 6
0
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();'
    ]
Ejemplo n.º 7
0
def literal_strategy():
    return LiteralUpdateColumnStrategy("test_column6", value="RANDOM()")