Skip to content

Conversation

@Lextuga007
Copy link
Member

No description provided.

@Lextuga007 Lextuga007 linked an issue Mar 7, 2025 that may be closed by this pull request
@Lextuga007
Copy link
Member Author

Need to run tests when connected to VPN.

@Steve-Spreadborough
Copy link
Member

Tests are failing, can you re-run the tests and make fixes?

@Lextuga007
Copy link
Member Author

I set up the connections for the servers now (the mysql uses the details from the nottshcData package to connect so not an admin or user account) but I get the same test errors as I do on main. Do you get these?

── Test failures ───────────────────────────────────────────────────────────────────────────────── testthat ────

> # This file is part of the standard setup for testthat.
> # It is recommended that you do not modify it.
> #
> # Where should you do additional test configuration?
> # Learn more about the roles of various files in:
> # * https://r-pkgs.org/testing-design.html#sec-tests-files-overview
> # * https://testthat.r-lib.org/articles/special-files.html
> 
> library(testthat)
> library(SQLRtools)
> 
> test_check("SQLRtools")
[1] "ACM_Activity"
[1] "ACM_Config_Current"
[1] "ACM_Config_Pivoted"
[1] "ACM_Config_Pivoted_20191125"
[1] "ACM_Finance"
[1] "ACM_Finance"
  |                                                                      |   0%[1] "#SQLRtools_test_table_______________________________________________________________________________________________00000000647C"
table #SQLRtools_test_table doesn't exist
table SQLRtools_test_table doesn't exist
[ FAIL 10 | WARN 0 | SKIP 0 | PASS 20 ]

══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-README.R:99:3'): README ────────────────────────────────────────
<odbc_database_error/rlang_error/error/condition>
Error in `ms_sql_server$get(glue("SELECT {table_fields}\n                                     FROM #SQLRtools_example", 
    close_conn = TRUE))`: ! ODBC failed with error 42S02 from [Microsoft][ODBC SQL Server Driver][SQL Server].
x Invalid object name '#SQLRtools_example'.
* <SQL> 'SELECT a, b
* FROM #SQLRtools_example'
i From 'nanodbc/nanodbc.cpp:1726'.
Backtrace:
     ▆
  1. ├─ms_sql_server$get(...) at test-README.R:99:3
  2. │ ├─DBI::dbGetQuery(self$conn, query)
  3. │ └─DBI::dbGetQuery(self$conn, query)
  4. │   └─odbc (local) .local(conn, statement, ...)
  5. │     ├─DBI::dbSendQuery(...)
  6. │     └─odbc::dbSendQuery(...)
  7. │       └─odbc (local) .local(conn, statement, ...)
  8. │         └─odbc:::OdbcResult(...)
  9. │           └─odbc:::new_result(p = connection@ptr, sql = statement, immediate = immediate)
 10. └─odbc (local) `<fn>`("nanodbc/nanodbc.cpp:1726: 42S02\n[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name '#SQLRtools_example'. \n<SQL> 'SELECT a, b\nFROM #SQLRtools_example'")
 11.   └─cli::cli_abort(...)
 12.     └─rlang::abort(...)
── Error ('test-mssql_server.R:73:3'): mssql_server - upload method ────────────
<odbc_database_error/rlang_error/error/condition>
Error in `mssql_serv$upload(data = test_data, table_name = test_table_name, 
    batch_upload = 50, append_data = TRUE, close_conn = FALSE)`: ! ODBC failed with error 42000 from [Microsoft][ODBC SQL Server Driver][SQL Server].
x The object or column name starting with '#SQLRtools_test_table_______________________________________________________________________________________________00000000647C' is too long. The maximum length is 116 characters.
* <SQL> 'CREATE TABLE "#SQLRtools_test_table_______________________________________________________________________________________________00000000647C" (
*  "Int_field" INT,
*  "char_field_1" varchar(255),
*  "char_field_2" varchar(255),
*  "date_field" DATE,
*  "date_time_field" DATETIME
* )
* '
i From 'nanodbc/nanodbc.cpp:1726'.
Backtrace:
     ▆
  1. ├─mssql_serv$upload(...) at test-mssql_server.R:73:3
  2. │ ├─DBI::dbWriteTable(...)
  3. │ └─DBI::dbWriteTable(...)
  4. │   └─odbc (local) .local(conn, name, value, ...)
  5. │     ├─DBI::dbCreateTable(...)
  6. │     └─DBI::dbCreateTable(...)
  7. │       ├─DBI::dbExecute(conn, query)
  8. │       └─odbc::dbExecute(conn, query)
  9. │         └─odbc (local) .local(conn, statement, ...)
 10. │           ├─DBI::dbSendStatement(conn, statement, params = params, ..., immediate = immediate)
 11. │           └─odbc::dbSendStatement(...)
 12. │             └─odbc (local) .local(conn, statement, ...)
 13. │               └─odbc:::OdbcResult(...)
 14. │                 └─odbc:::new_result(p = connection@ptr, sql = statement, immediate = immediate)
 15. └─odbc (local) `<fn>`("nanodbc/nanodbc.cpp:1726: 42000\n[Microsoft][ODBC SQL Server Driver][SQL Server]The object or column name starting with '#SQLRtools_test_table_______________________________________________________________________________________________00000000647C' is too long. The maximum length is 116 characters. \n<SQL> 'CREATE TABLE \"#SQLRtools_test_table_______________________________________________________________________________________________00000000647C\" (\n  \"Int_field\" INT,\n  \"char_field_1\" varchar(255),\n  \"char_field_2\" varchar(255),\n  \"date_field\" DATE,\n  \"date_time_field\" DATETIME\n)\n'")
 16.   └─cli::cli_abort(...)
 17.     └─rlang::abort(...)
── Error ('test-mssql_server.R:98:3'): mssql_server - get data ─────────────────
<odbc_database_error/rlang_error/error/condition>
Error in `mssql_serv$get(glue("SELECT * FROM {test_table_name}"), close_conn = FALSE) %>% 
    mutate(date_field = as.Date(date_field))`: ! ODBC failed with error 42S02 from [Microsoft][ODBC SQL Server Driver][SQL Server].
x Invalid object name '#SQLRtools_test_table'.
* <SQL> 'SELECT * FROM #SQLRtools_test_table'
i From 'nanodbc/nanodbc.cpp:1726'.
Backtrace:
     ▆
  1. ├─... %>% mutate(date_field = as.Date(date_field)) at test-mssql_server.R:98:3
  2. ├─dplyr::mutate(., date_field = as.Date(date_field))
  3. ├─mssql_serv$get(glue("SELECT * FROM {test_table_name}"), close_conn = FALSE)
  4. │ ├─DBI::dbGetQuery(self$conn, query)
  5. │ └─DBI::dbGetQuery(self$conn, query)
  6. │   └─odbc (local) .local(conn, statement, ...)
  7. │     ├─DBI::dbSendQuery(...)
  8. │     └─odbc::dbSendQuery(...)
  9. │       └─odbc (local) .local(conn, statement, ...)
 10. │         └─odbc:::OdbcResult(...)
 11. │           └─odbc:::new_result(p = connection@ptr, sql = statement, immediate = immediate)
 12. └─odbc (local) `<fn>`("nanodbc/nanodbc.cpp:1726: 42S02\n[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name '#SQLRtools_test_table'. \n<SQL> 'SELECT * FROM #SQLRtools_test_table'")
 13.   └─cli::cli_abort(...)
 14.     └─rlang::abort(...)
── Error ('test-mssql_server.R:112:3'): mssql_server - run & order by fields ───
<odbc_database_error/rlang_error/error/condition>
Error in `mssql_serv$run(glue("ALTER TABLE {test_table_name}\n                       ALTER COLUMN char_field_1 varchar(max);"), 
    close_conn = FALSE)`: ! ODBC failed with error 42S02 from [Microsoft][ODBC SQL Server Driver][SQL Server].
x Cannot find the object "#SQLRtools_test_table" because it does not exist or you do not have permissions.
* <SQL> 'ALTER TABLE #SQLRtools_test_table
* ALTER COLUMN char_field_1 varchar(max);'
i From 'nanodbc/nanodbc.cpp:1726'.
Backtrace:
    ▆
 1. ├─mssql_serv$run(...) at test-mssql_server.R:112:3
 2. │ ├─DBI::dbSendStatement(self$conn, query, immediate = TRUE)
 3. │ └─DBI::dbSendStatement(self$conn, query, immediate = TRUE)
 4. │   └─odbc (local) .local(conn, statement, ...)
 5. │     └─odbc:::OdbcResult(...)
 6. │       └─odbc:::new_result(p = connection@ptr, sql = statement, immediate = immediate)
 7. └─odbc (local) `<fn>`("nanodbc/nanodbc.cpp:1726: 42S02\n[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot find the object \"#SQLRtools_test_table\" because it does not exist or you do not have permissions. \n<SQL> 'ALTER TABLE #SQLRtools_test_table\nALTER COLUMN char_field_1 varchar(max);'")
 8.   └─cli::cli_abort(...)
 9.     └─rlang::abort(...)
── Error ('test-mssql_server.R:166:3'): mssql_server - meta data ───────────────
<odbc_database_error/rlang_error/error/condition>
Error in `mssql_serv$meta_data(objects = test_table_name, detail = TRUE, 
    close_conn = FALSE)`: ! ODBC failed with error 01000 from [Microsoft][ODBC SQL Server Driver][SQL Server].
x Invalid object name '#SQLRtools_test_table_______________________________________________________________________________________________00000000647C'.
* Database name 'tempdb' ignored, referencing object in tempdb.
* Database name 'tempdb' ignored, referencing object in tempdb.
* <SQL> 'SELECT *
* INTO #meta_temp_20250311163033026932
* FROM tempdb.dbo.[#SQLRtools_test_table_______________________________________________________________________________________________00000000647C]
* 
* '
i From 'nanodbc/nanodbc.cpp:1726'.
Backtrace:
     ▆
  1. ├─mssql_serv$meta_data(...) at test-mssql_server.R:166:3
  2. │ ├─DBI::dbExecute(...)
  3. │ └─DBI::dbExecute(...)
  4. │   └─odbc (local) .local(conn, statement, ...)
  5. │     ├─DBI::dbSendStatement(conn, statement, params = params, ..., immediate = immediate)
  6. │     └─odbc::dbSendStatement(...)
  7. │       └─odbc (local) .local(conn, statement, ...)
  8. │         └─odbc:::OdbcResult(...)
  9. │           └─odbc:::new_result(p = connection@ptr, sql = statement, immediate = immediate)
 10. └─odbc (local) `<fn>`("nanodbc/nanodbc.cpp:1726: 01000\n[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name '#SQLRtools_test_table_______________________________________________________________________________________________00000000647C'. \n[Microsoft][ODBC SQL Server Driver][SQL Server]Database name 'tempdb' ignored, referencing object in tempdb. \n[Microsoft][ODBC SQL Server Driver][SQL Server]Database name 'tempdb' ignored, referencing object in tempdb. \n<SQL> 'SELECT  *\nINTO #meta_temp_20250311163033026932\nFROM tempdb.dbo.[#SQLRtools_test_table_______________________________________________________________________________________________00000000647C]\n\n'")
 11.   └─cli::cli_abort(...)
 12.     └─rlang::abort(...)
── Error ('test-mysql_server.R:40:3'): mysql_server - upload method ────────────
<odbc_database_error/rlang_error/error/condition>
Error in `mysql_serv$upload(data = test_data, table_name = test_table_name, 
    schema_name = get_env_var("MYSQL_DB"))`: ! ODBC failed with error HY000 from [MySQL][ODBC 8.0(w) Driver][mysqld-8.0.40-0ubuntu0.20.04.1].
x CREATE command denied to user 'opendata'@'208.127.198.229' for table 'SQLRtools_test_table'
* <SQL> 'CREATE TABLE `SQLRtools_test_table` (
*  `Int_field` INTEGER,
*  `char_field_1` TEXT,
*  `char_field_2` TEXT,
*  `date_field` DATE,
*  `date_time_field` DATETIME
* )
* '
i From 'nanodbc/nanodbc.cpp:1726'.
Backtrace:
     ▆
  1. ├─mysql_serv$upload(...) at test-mysql_server.R:40:3
  2. │ ├─DBI::dbWriteTable(...)
  3. │ └─DBI::dbWriteTable(...)
  4. │   └─odbc (local) .local(conn, name, value, ...)
  5. │     ├─DBI::dbCreateTable(...)
  6. │     └─DBI::dbCreateTable(...)
  7. │       ├─DBI::dbExecute(conn, query)
  8. │       └─odbc::dbExecute(conn, query)
  9. │         └─odbc (local) .local(conn, statement, ...)
 10. │           ├─DBI::dbSendStatement(conn, statement, params = params, ..., immediate = immediate)
 11. │           └─odbc::dbSendStatement(...)
 12. │             └─odbc (local) .local(conn, statement, ...)
 13. │               └─odbc:::OdbcResult(...)
 14. │                 └─odbc:::new_result(p = connection@ptr, sql = statement, immediate = immediate)
 15. └─odbc (local) `<fn>`("nanodbc/nanodbc.cpp:1726: HY000\n[MySQL][ODBC 8.0(w) Driver][mysqld-8.0.40-0ubuntu0.20.04.1]CREATE command denied to user 'opendata'@'208.127.198.229' for table 'SQLRtools_test_table' \n<SQL> 'CREATE TABLE `SQLRtools_test_table` (\n  `Int_field` INTEGER,\n  `char_field_1` TEXT,\n  `char_field_2` TEXT,\n  `date_field` DATE,\n  `date_time_field` DATETIME\n)\n'")
 16.   └─cli::cli_abort(...)
 17.     └─rlang::abort(...)
── Error ('test-mysql_server.R:96:3'): mysql_server - get method ───────────────
<odbc_database_error/rlang_error/error/condition>
Error in `mysql_serv$get(glue("SELECT * FROM {test_table_name}"))`: ! ODBC failed with error HY000 from [MySQL][ODBC 8.0(w) Driver][mysqld-8.0.40-0ubuntu0.20.04.1].
x SELECT command denied to user 'opendata'@'208.127.198.229' for table 'SQLRtools_test_table'
* <SQL> 'SELECT * FROM SQLRtools_test_table'
i From 'nanodbc/nanodbc.cpp:1726'.
Backtrace:
     ▆
  1. ├─mysql_serv$get(glue("SELECT * FROM {test_table_name}")) at test-mysql_server.R:96:3
  2. │ ├─DBI::dbGetQuery(self$conn, query)
  3. │ └─DBI::dbGetQuery(self$conn, query)
  4. │   └─odbc (local) .local(conn, statement, ...)
  5. │     ├─DBI::dbSendQuery(...)
  6. │     └─odbc::dbSendQuery(...)
  7. │       └─odbc (local) .local(conn, statement, ...)
  8. │         └─odbc:::OdbcResult(...)
  9. │           └─odbc:::new_result(p = connection@ptr, sql = statement, immediate = immediate)
 10. └─odbc (local) `<fn>`("nanodbc/nanodbc.cpp:1726: HY000\n[MySQL][ODBC 8.0(w) Driver][mysqld-8.0.40-0ubuntu0.20.04.1]SELECT command denied to user 'opendata'@'208.127.198.229' for table 'SQLRtools_test_table' \n<SQL> 'SELECT * FROM SQLRtools_test_table'")
 11.   └─cli::cli_abort(...)
 12.     └─rlang::abort(...)
── Failure ('test-mysql_server.R:111:3'): mysql_server - meta data ─────────────
test_table_name %in% db_tables$table_name is not TRUE

`actual`:   FALSE
`expected`: TRUE 
── Failure ('test-mysql_server.R:117:3'): mysql_server - meta data ─────────────
sort(table_fields[[1]]) (`actual`) not equal to sort(colnames(test_data)) (`expected`).

 actual | expected             
        - "Int_field"       [1]
        - "char_field_1"    [2]
        - "char_field_2"    [3]
        - "date_field"      [4]
        - "date_time_field" [5]
── Error ('test-mysql_server.R:121:3'): mysql_server - meta data ───────────────
<subscriptOutOfBoundsError/error/condition>
Error in `mysql_serv$meta_data(objects = test_table_name)[[1]]`: subscript out of bounds

[ FAIL 10 | WARN 0 | SKIP 0 | PASS 20 ]
Error: Test failures
Execution halted

1 error ✖ | 0 warnings ✔ | 1 note ✖
Error: R CMD check found ERRORs
Execution halted

Exited with status 1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Apply namespace (package::function() to scripts

3 participants