コード例 #1
0
ファイル: test_schemas.py プロジェクト: centerofci/mathesar
def test_delete_schema(engine, if_exists):
    test_schema = "test_delete_schema"

    schemas.create_schema(test_schema, engine)
    current_schemas = schemas.get_mathesar_schemas(engine)
    assert test_schema in current_schemas

    schemas.delete_schema(test_schema, engine, if_exists=if_exists)
    current_schemas = schemas.get_mathesar_schemas(engine)
    assert test_schema not in current_schemas
コード例 #2
0
ファイル: test_schemas.py プロジェクト: centerofci/mathesar
def test_rename_schema(engine):
    test_schema = "test_rename_schema"
    new_test_schema = "test_rename_schema_new"

    schemas.create_schema(test_schema, engine)
    current_schemas = schemas.get_mathesar_schemas(engine)
    assert test_schema in current_schemas

    schemas.rename_schema(test_schema, engine, new_test_schema)
    current_schemas = schemas.get_mathesar_schemas(engine)
    assert test_schema not in current_schemas
    assert new_test_schema in current_schemas
コード例 #3
0
ファイル: test_schemas.py プロジェクト: centerofci/mathesar
def test_delete_schema_restricted(engine):
    test_schema = "test_delete_schema_restricted"
    test_table = "test_delete_schema_restricted_table"

    schemas.create_schema(test_schema, engine)
    tables.create_mathesar_table(test_table, test_schema, [], engine)

    with pytest.raises(DependentObjectsStillExist):
        schemas.delete_schema(test_schema, engine)

    current_schemas = schemas.get_mathesar_schemas(engine)
    assert test_schema in current_schemas
コード例 #4
0
ファイル: test_schemas.py プロジェクト: centerofci/mathesar
def test_delete_schema_cascade(engine):
    test_schema = "test_delete_schema_cascade"
    test_table = "test_delete_schema_cascade_table"

    schemas.create_schema(test_schema, engine)
    table = tables.create_mathesar_table(test_table, test_schema, [], engine)

    schemas.delete_schema(test_schema, engine, cascade=True)

    current_schemas = schemas.get_mathesar_schemas(engine)
    assert test_schema not in current_schemas
    with pytest.raises(NoSuchTableError):
        tables.reflect_table(table.name, test_schema, engine)
コード例 #5
0
ファイル: schemas.py プロジェクト: centerofci/mathesar
def create_schema_and_object(name, database):
    engine = create_mathesar_engine(database)

    all_schemas = get_mathesar_schemas(engine)
    if name in all_schemas:
        raise ValidationError({"name": f"Schema name {name} is not unique"})

    try:
        database_model = Database.objects.get(name=database)
    except ObjectDoesNotExist:
        raise ValidationError({"database": f"Database '{database}' not found"})

    create_schema(name, engine)
    schema_oid = get_schema_oid_from_name(name, engine)

    schema = Schema.objects.create(oid=schema_oid, database=database_model)
    return schema
コード例 #6
0
def check_schema_response(response_schema,
                          schema,
                          schema_name,
                          test_db_name,
                          len_tables=1,
                          check_schema_objects=True):
    assert response_schema['id'] == schema.id
    assert response_schema['name'] == schema_name
    assert response_schema['database'] == test_db_name
    assert 'has_dependencies' in response_schema
    assert len(response_schema['tables']) == len_tables
    if len_tables > 0:
        response_table = response_schema['tables'][0]
        assert 'id' in response_table
        response_table_id = response_table['id']
        assert 'name' in response_table
        assert response_table['url'].startswith('http')
        assert response_table['url'].endswith(
            f'/api/v0/tables/{response_table_id}/')
    if check_schema_objects:
        assert schema_name in schemas.get_mathesar_schemas(
            create_mathesar_engine(test_db_name))
コード例 #7
0
ファイル: test_schemas.py プロジェクト: centerofci/mathesar
def test_get_mathesar_schemas():
    engine = create_engine("postgresql://")
    with patch.object(schemas,
                      "get_mathesar_schemas_with_oids") as mock_schemas:
        schemas.get_mathesar_schemas(engine)
    mock_schemas.assert_called_once_with(engine)