Skip to content

Commit f36ea8a

Browse files
authored
Merge pull request #134 from wa5i/bugfix
fix: test case errors in mysql backend.
2 parents 18b0efe + 06694ce commit f36ea8a

File tree

4 files changed

+32
-9
lines changed

4 files changed

+32
-9
lines changed

.github/workflows/rust.yml

+8-2
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,12 @@ jobs:
100100
my-cnf: |
101101
skip-ssl
102102
port=3306
103+
- name: Set macOS Environment Variables
104+
if: runner.os == 'macOS'
105+
env:
106+
MACOSX_DEPLOYMENT_TARGET: "11.0"
107+
run: |
108+
export MACOSX_DEPLOYMENT_TARGET=11.0
103109
- name: install diesel_cli
104110
run: cargo install diesel_cli --no-default-features --features mysql
105111
- name: init database
@@ -109,7 +115,7 @@ jobs:
109115
- name: ulimit -n
110116
run: ulimit -n 65535
111117
- name: Run tests
112-
run: cargo test --verbose
118+
run: cargo test --features storage_mysql --verbose
113119
- name: Build crate doc
114120
run: cargo doc --no-deps
115121

@@ -177,6 +183,6 @@ jobs:
177183
- name: Build
178184
run: cargo build --features storage_mysql --verbose
179185
- name: Run tests
180-
run: cargo test --verbose
186+
run: cargo test --features storage_mysql --verbose
181187
- name: Build crate doc
182188
run: cargo doc --no-deps

.vscode/settings.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"rust-analyzer.linkedProjects": [
33
"Cargo.toml"
4-
]
4+
],
5+
"rust-analyzer.cargo.features": ["storage_mysql"]
56
}

src/storage/mysql/mod.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,17 @@ fn establish_mysql_connection(conf: &HashMap<String, Value>) -> Result<MysqlDbPo
5555

5656
#[cfg(test)]
5757
mod test {
58-
use std::collections::HashMap;
58+
use std::{collections::HashMap, env};
5959

6060
use super::*;
6161

6262
#[test]
6363
fn test_establish_mysql_connection() {
64+
let mysql_pwd = env::var("CARGO_TEST_MYSQL_PASSWORD").unwrap_or("password".into());
6465
let mut conf: HashMap<String, Value> = HashMap::new();
6566
conf.insert("address".to_string(), Value::String("127.0.0.1:3306".to_string()));
6667
conf.insert("username".to_string(), Value::String("root".to_string()));
67-
conf.insert("password".to_string(), Value::String("password".to_string()));
68+
conf.insert("password".to_string(), Value::String(mysql_pwd));
6869

6970
let pool = establish_mysql_connection(&conf);
7071

src/storage/mysql/mysql_backend.rs

+19-4
Original file line numberDiff line numberDiff line change
@@ -126,27 +126,42 @@ impl MysqlBackend {
126126
#[cfg(test)]
127127
mod test {
128128

129-
use std::collections::HashMap;
129+
use std::{collections::HashMap, env};
130130

131+
use diesel::{prelude::*, MysqlConnection};
131132
use serde_json::Value;
132133

133134
use super::MysqlBackend;
134-
use crate::storage::test::{test_backend, test_backend_list_prefix};
135+
136+
use crate::errors::RvError;
137+
use crate::storage::test::{test_backend_curd, test_backend_list_prefix};
138+
139+
fn mysql_table_clear(backend: &MysqlBackend) -> Result<(), RvError> {
140+
let conn: &mut MysqlConnection = &mut backend.pool.lock().unwrap().get().unwrap();
141+
142+
match diesel::sql_query("TRUNCATE TABLE vault").execute(conn) {
143+
Ok(_) => return Ok(()),
144+
Err(e) => return Err(RvError::ErrDatabaseExecuteEntry { source: (e) }),
145+
}
146+
}
135147

136148
#[test]
137149
fn test_mysql_backend() {
150+
let mysql_pwd = env::var("CARGO_TEST_MYSQL_PASSWORD").unwrap_or("password".into());
138151
let mut conf: HashMap<String, Value> = HashMap::new();
139152
conf.insert("address".to_string(), Value::String("127.0.0.1:3306".to_string()));
140153
conf.insert("username".to_string(), Value::String("root".to_string()));
141-
conf.insert("password".to_string(), Value::String("password".to_string()));
154+
conf.insert("password".to_string(), Value::String(mysql_pwd));
142155

143156
let backend = MysqlBackend::new(&conf);
144157

145158
assert!(backend.is_ok());
146159

147160
let backend = backend.unwrap();
148161

149-
test_backend(&backend);
162+
assert!(mysql_table_clear(&backend).is_ok());
163+
164+
test_backend_curd(&backend);
150165
test_backend_list_prefix(&backend);
151166
}
152167
}

0 commit comments

Comments
 (0)