Esempio n. 1
0
def test_add_clause(operation):
    builder = dataclasses_sql.SelectStatementBuilder()
    builder.add_all_columns(TreeData)
    builder.add_clause(TreeData, "diameter_m", 3, operation)
    builder.build()

    assert len(builder._clauses) == 1
Esempio n. 2
0
def test_add_clause_in():
    builder = dataclasses_sql.SelectStatementBuilder()
    builder.add_all_columns(TreeData)
    builder.add_clause(TreeData, "diameter_m", [3, 4, 5], "in")
    builder.build()

    assert len(builder._clauses) == 1
Esempio n. 3
0
def test_add_all_columns():
    builder = dataclasses_sql.SelectStatementBuilder()
    builder.add_all_columns(TaxonomyData)
    builder.build()

    assert len(builder._tables) == 1
    assert len(builder._columns) == 5
Esempio n. 4
0
def test_add_join_specific_column():
    builder = dataclasses_sql.SelectStatementBuilder()
    builder.add_all_columns(TreeData)
    builder.add_join(TreeData, TaxonomyData, column_name_left="taxonomy")
    builder.build()

    assert len(builder._joins) == 1
Esempio n. 5
0
def test_add_join():
    builder = dataclasses_sql.SelectStatementBuilder()
    builder.add_all_columns(TreeData)
    builder.add_join(TreeData, TaxonomyData)
    builder.build()

    assert len(builder._joins) == 1
Esempio n. 6
0
def test_add_column_dataclass():
    builder = dataclasses_sql.SelectStatementBuilder()
    builder.add_column(TreeData, "taxonomy")
    builder.build()

    assert len(builder._tables) == 1
    assert len(builder._columns) == 1
Esempio n. 7
0
def test_select(metadata):
    builder = dataclasses_sql.SelectStatementBuilder()
    builder.add_all_columns(TaxonomyData)
    statement = builder.build()

    with metadata.bind.begin() as conn:
        rows = conn.execute(statement).fetchall()

    assert len(rows) == 2
Esempio n. 8
0
def test_select_with_label(metadata):
    builder = dataclasses_sql.SelectStatementBuilder()
    builder.add_column(TaxonomyData, "order", label="foo")
    statement = builder.build()

    with metadata.bind.begin() as conn:
        rows = conn.execute(statement).fetchall()

    assert len(rows) == 2
    assert "foo" in rows[0].keys()
Esempio n. 9
0
def test_select_with_join_and_clause(metadata):
    builder = dataclasses_sql.SelectStatementBuilder()
    builder.add_all_columns(TreeData)
    builder.add_join(TreeData, TaxonomyData)
    builder.add_clause(TreeData, "diameter_m", 3, ">=")
    statement = builder.build()

    with metadata.bind.begin() as conn:
        rows = conn.execute(statement).fetchall()

    assert len(rows) == 1
Esempio n. 10
0
def test_select_with_join(metadata):
    builder = dataclasses_sql.SelectStatementBuilder()
    builder.add_column(TreeData, "specie")
    builder.add_column(TaxonomyData, "genus")
    builder.add_join(TreeData, TaxonomyData)
    statement = builder.build()

    with metadata.bind.begin() as conn:
        rows = conn.execute(statement).fetchall()

    assert len(rows) == 1
Esempio n. 11
0
def test_select_with_clauses(metadata):
    builder = dataclasses_sql.SelectStatementBuilder()
    builder.add_all_columns(TaxonomyData)

    clause1 = builder.create_clause(TaxonomyData, "genus", "rosa")
    clause2 = builder.create_clause(TaxonomyData, "genus", "hibiscus")
    builder.add_clause(clause1, clause2)

    statement = builder.build()

    with metadata.bind.begin() as conn:
        rows = conn.execute(statement).fetchall()

    assert len(rows) == 2
Esempio n. 12
0
def test_add_join_invalid():
    builder = dataclasses_sql.SelectStatementBuilder()

    with pytest.raises(ValueError):
        builder.add_join(TaxonomyData, TreeData)
Esempio n. 13
0
def test_add_column_missing():
    builder = dataclasses_sql.SelectStatementBuilder()

    with pytest.raises(ValueError):
        builder.add_column(TreeData, "doesnotexist")