Skip to content

Commit ce71401

Browse files
committed
add ci feature to control some ci specific functionality
1 parent 1e5465f commit ce71401

File tree

3 files changed

+39
-17
lines changed

3 files changed

+39
-17
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,16 @@ jobs:
7373
include:
7474
- os: ubuntu-latest
7575
browser: chrome
76-
features: plotly_ndarray,plotly_image,static_export_default
76+
features: plotly_ndarray,plotly_image,static_export_default,ci
7777
- os: ubuntu-latest
7878
browser: firefox
79-
features: plotly_ndarray,plotly_image,static_export_geckodriver,static_export_downloader
79+
features: plotly_ndarray,plotly_image,static_export_geckodriver,static_export_downloader,ci
8080
- os: windows-latest
8181
browser: chrome
82-
features: plotly_ndarray,plotly_image,static_export_chromedriver
82+
features: plotly_ndarray,plotly_image,static_export_chromedriver,ci
8383
- os: macos-latest
8484
browser: chrome
85-
features: plotly_ndarray,plotly_image,static_export_default
85+
features: plotly_ndarray,plotly_image,static_export_default,ci
8686
runs-on: ${{ matrix.os }}
8787
timeout-minutes: ${{ matrix.os == 'windows-latest' && 30 || 10 }}
8888
steps:

plotly_static/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ exclude = ["target/*"]
1616
webdriver_download = []
1717
geckodriver = []
1818
chromedriver = []
19+
# This is used for CI testing
20+
ci = []
1921

2022
[dependencies]
2123
log = "0.4"

plotly_static/src/lib.rs

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ pub struct StaticExporterBuilder {
480480
spawn_webdriver: bool,
481481
/// Use bundled JS libraries instead of CDN (default: false)
482482
offline_mode: bool,
483-
/// PDF export timeout in milliseconds (default: 250)
483+
/// PDF export timeout in milliseconds (default: 150)
484484
pdf_export_timeout: u32,
485485
/// Browser command-line flags (e.g., "--headless", "--no-sandbox")
486486
webdriver_browser_caps: Vec<String>,
@@ -502,7 +502,7 @@ impl Default for StaticExporterBuilder {
502502
webdriver_url: webdriver::WEBDRIVER_URL.to_string(),
503503
spawn_webdriver: true,
504504
offline_mode: false,
505-
pdf_export_timeout: 250,
505+
pdf_export_timeout: 150,
506506
webdriver_browser_caps: {
507507
#[cfg(feature = "chromedriver")]
508508
{
@@ -619,9 +619,9 @@ impl StaticExporterBuilder {
619619
/// let builder = StaticExporterBuilder::default()
620620
/// .pdf_export_timeout(500);
621621
///
622-
/// // Use default timeout (250ms)
622+
/// // Use default timeout (150ms)
623623
/// let builder = StaticExporterBuilder::default()
624-
/// .pdf_export_timeout(250);
624+
/// .pdf_export_timeout(150);
625625
/// ```
626626
pub fn pdf_export_timeout(mut self, timeout_ms: u32) -> Self {
627627
self.pdf_export_timeout = timeout_ms;
@@ -1224,7 +1224,8 @@ mod tests {
12241224
let metadata = std::fs::metadata(&dst).expect("Could not retrieve file metadata");
12251225
let file_size = metadata.len();
12261226
assert!(file_size > 0,);
1227-
// assert!(std::fs::remove_file(dst.as_path()).is_ok());
1227+
#[cfg(not(feature = "ci"))]
1228+
assert!(std::fs::remove_file(dst.as_path()).is_ok());
12281229
}
12291230

12301231
#[test]
@@ -1244,7 +1245,8 @@ mod tests {
12441245
let metadata = std::fs::metadata(&dst).expect("Could not retrieve file metadata");
12451246
let file_size = metadata.len();
12461247
assert!(file_size > 0,);
1247-
// assert!(std::fs::remove_file(dst.as_path()).is_ok());
1248+
#[cfg(not(feature = "ci"))]
1249+
assert!(std::fs::remove_file(dst.as_path()).is_ok());
12481250
}
12491251

12501252
#[test]
@@ -1265,7 +1267,8 @@ mod tests {
12651267
let metadata = std::fs::metadata(&dst).expect("Could not retrieve file metadata");
12661268
let file_size = metadata.len();
12671269
assert!(file_size > 0,);
1268-
// assert!(std::fs::remove_file(dst.as_path()).is_ok());
1270+
#[cfg(not(feature = "ci"))]
1271+
assert!(std::fs::remove_file(dst.as_path()).is_ok());
12691272

12701273
let dst = PathBuf::from("example2.jpeg");
12711274
export
@@ -1275,7 +1278,8 @@ mod tests {
12751278
let metadata = std::fs::metadata(&dst).expect("Could not retrieve file metadata");
12761279
let file_size = metadata.len();
12771280
assert!(file_size > 0,);
1278-
// assert!(std::fs::remove_file(dst.as_path()).is_ok());
1281+
#[cfg(not(feature = "ci"))]
1282+
assert!(std::fs::remove_file(dst.as_path()).is_ok());
12791283
}
12801284

12811285
#[test]
@@ -1295,7 +1299,8 @@ mod tests {
12951299
let metadata = std::fs::metadata(&dst).expect("Could not retrieve file metadata");
12961300
let file_size = metadata.len();
12971301
assert!(file_size > 0,);
1298-
// assert!(std::fs::remove_file(dst.as_path()).is_ok());
1302+
#[cfg(not(feature = "ci"))]
1303+
assert!(std::fs::remove_file(dst.as_path()).is_ok());
12991304
}
13001305

13011306
#[test]
@@ -1315,27 +1320,39 @@ mod tests {
13151320
let metadata = std::fs::metadata(&dst).expect("Could not retrieve file metadata");
13161321
let file_size = metadata.len();
13171322
assert!(file_size > 0,);
1318-
// assert!(std::fs::remove_file(dst.as_path()).is_ok());
1323+
#[cfg(not(feature = "ci"))]
1324+
assert!(std::fs::remove_file(dst.as_path()).is_ok());
13191325
}
13201326

13211327
#[test]
13221328
fn save_pdf() {
13231329
init();
13241330
let test_plot = create_test_plot();
1325-
let mut export = StaticExporterBuilder::default()
1331+
#[cfg(feature = "ci")]
1332+
let mut exporter = StaticExporterBuilder::default()
13261333
.spawn_webdriver(true)
13271334
.webdriver_port(get_unique_port())
1335+
.pdf_export_timeout(750)
13281336
.build()
13291337
.unwrap();
1338+
1339+
#[cfg(not(feature = "ci"))]
1340+
let mut exporter = StaticExporterBuilder::default()
1341+
.spawn_webdriver(true)
1342+
.webdriver_port(get_unique_port())
1343+
.build()
1344+
.unwrap();
1345+
13301346
let dst = PathBuf::from("example.pdf");
1331-
export
1347+
exporter
13321348
.write_fig(dst.as_path(), &test_plot, ImageFormat::PDF, 1200, 900, 4.5)
13331349
.unwrap();
13341350
assert!(dst.exists());
13351351
let metadata = std::fs::metadata(&dst).expect("Could not retrieve file metadata");
13361352
let file_size = metadata.len();
13371353
assert!(file_size > 600000,);
1338-
// assert!(std::fs::remove_file(dst.as_path()).is_ok());
1354+
#[cfg(not(feature = "ci"))]
1355+
assert!(std::fs::remove_file(dst.as_path()).is_ok());
13391356
}
13401357

13411358
#[test]
@@ -1362,6 +1379,7 @@ mod tests {
13621379
.write_fig(dst1.as_path(), &test_plot, ImageFormat::PNG, 800, 600, 1.0)
13631380
.unwrap();
13641381
assert!(dst1.exists());
1382+
#[cfg(not(feature = "ci"))]
13651383
assert!(std::fs::remove_file(dst1.as_path()).is_ok());
13661384

13671385
// Create second exporter on the same port - this should connect to existing
@@ -1378,6 +1396,7 @@ mod tests {
13781396
.write_fig(dst2.as_path(), &test_plot, ImageFormat::PNG, 800, 600, 1.0)
13791397
.unwrap();
13801398
assert!(dst2.exists());
1399+
#[cfg(not(feature = "ci"))]
13811400
assert!(std::fs::remove_file(dst2.as_path()).is_ok());
13821401

13831402
// Create third exporter on the same port - should also connect to existing
@@ -1394,6 +1413,7 @@ mod tests {
13941413
.write_fig(dst3.as_path(), &test_plot, ImageFormat::PNG, 800, 600, 1.0)
13951414
.unwrap();
13961415
assert!(dst3.exists());
1416+
#[cfg(not(feature = "ci"))]
13971417
assert!(std::fs::remove_file(dst3.as_path()).is_ok());
13981418
}
13991419
}

0 commit comments

Comments
 (0)