Skip to content

Commit 011c415

Browse files
Merge #1562
1562: Convert more tests r=carols10cents a=jtgeibel These commits contain minor test cleanups and convert some additional tests to the new infrastructure. Co-authored-by: Justin Geibel <jtgeibel@gmail.com>
2 parents 4eedb3a + 3b3fca4 commit 011c415

File tree

9 files changed

+165
-273
lines changed

9 files changed

+165
-273
lines changed

src/bin/update-downloads.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ mod test {
144144
&HashMap::new(),
145145
None,
146146
None,
147-
None,
147+
0,
148148
).unwrap();
149149
let version = version.save(&conn, &[]).unwrap();
150150
(krate, version)

src/controllers/krate/publish.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ pub fn publish(req: &mut dyn Request) -> CargoResult<Response> {
135135
license_file,
136136
// Downcast is okay because the file length must be less than the max upload size
137137
// to get here, and max upload sizes are way less than i32 max
138-
Some(file_length as i32),
138+
file_length as i32,
139139
)?.save(&conn, &new_crate.authors)?;
140140

141141
// Link this new version to all dependencies

src/models/version.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ impl NewVersion {
120120
features: &HashMap<String, Vec<String>>,
121121
license: Option<String>,
122122
license_file: Option<&str>,
123-
crate_size: Option<i32>,
123+
crate_size: i32,
124124
) -> CargoResult<Self> {
125125
let features = serde_json::to_value(features)?;
126126

@@ -129,7 +129,7 @@ impl NewVersion {
129129
num: num.to_string(),
130130
features,
131131
license,
132-
crate_size,
132+
crate_size: Some(crate_size),
133133
};
134134

135135
new_version.validate_license(license_file)?;

src/tests/all.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ use cargo_registry::{models, schema, views};
4747
use util::{Bad, RequestHelper, TestApp};
4848

4949
use models::{Crate, CrateOwner, Dependency, Team, User, Version};
50-
use models::{NewCategory, NewTeam, NewUser, NewVersion};
50+
use models::{NewCategory, NewTeam, NewUser};
5151
use schema::*;
5252
use views::krate_publish as u;
5353
use views::{EncodableCrate, EncodableKeyword, EncodableVersion};
@@ -267,11 +267,6 @@ fn add_team_to_crate(t: &Team, krate: &Crate, u: &User, conn: &PgConnection) ->
267267

268268
use cargo_registry::util::CargoResult;
269269

270-
fn new_version(crate_id: i32, num: &str, crate_size: Option<i32>) -> NewVersion {
271-
let num = semver::Version::parse(num).unwrap();
272-
NewVersion::new(crate_id, &num, &HashMap::new(), None, None, crate_size).unwrap()
273-
}
274-
275270
fn krate(name: &str) -> Crate {
276271
static NEXT_CRATE_ID: AtomicUsize = ATOMIC_USIZE_INIT;
277272

src/tests/builders.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ pub struct VersionBuilder<'a> {
2626
features: HashMap<String, Vec<String>>,
2727
dependencies: Vec<(i32, Option<&'static str>)>,
2828
yanked: bool,
29+
size: i32,
2930
}
3031

3132
impl<'a> VersionBuilder<'a> {
@@ -46,6 +47,7 @@ impl<'a> VersionBuilder<'a> {
4647
features: HashMap::new(),
4748
dependencies: Vec::new(),
4849
yanked: false,
50+
size: 0,
4951
}
5052
}
5153

@@ -66,6 +68,12 @@ impl<'a> VersionBuilder<'a> {
6668
Self { yanked, ..self }
6769
}
6870

71+
/// Sets the version's size.
72+
pub fn size(mut self, size: i32) -> Self {
73+
self.size = size;
74+
self
75+
}
76+
6977
fn build(self, crate_id: i32, connection: &PgConnection) -> CargoResult<Version> {
7078
use diesel::{insert_into, update};
7179

@@ -80,7 +88,7 @@ impl<'a> VersionBuilder<'a> {
8088
&self.features,
8189
license,
8290
self.license_file,
83-
None,
91+
self.size,
8492
)?.save(connection, &[])?;
8593

8694
if self.yanked {
@@ -109,6 +117,17 @@ impl<'a> VersionBuilder<'a> {
109117

110118
Ok(vers)
111119
}
120+
121+
/// Consumes the builder and creates the version record in the database.
122+
///
123+
/// # Panics
124+
///
125+
/// Panics (and fails the test) if any part of inserting the version record fails.
126+
pub fn expect_build(self, crate_id: i32, connection: &PgConnection) -> Version {
127+
self.build(crate_id, connection).unwrap_or_else(|e| {
128+
panic!("Unable to create version: {:?}", e);
129+
})
130+
}
112131
}
113132

114133
impl<'a> From<&'a str> for VersionBuilder<'a> {

src/tests/krate.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ use {
3434
app, krate, new_category, new_crate, new_crate_to_body, new_crate_to_body_with_io,
3535
new_crate_to_body_with_tarball, new_dependency, new_req, new_req_body_version_2, new_req_full,
3636
new_req_with_badges, new_req_with_categories, new_req_with_documentation,
37-
new_req_with_keywords, new_user, new_version, req, sign_in, sign_in_as, Bad, CrateMeta,
38-
CrateResponse, GoodCrate, OkBool, RequestHelper, TestApp,
37+
new_req_with_keywords, new_user, req, sign_in, sign_in_as, Bad, CrateMeta, CrateResponse,
38+
GoodCrate, OkBool, RequestHelper, TestApp,
3939
};
4040

4141
#[derive(Deserialize)]
@@ -1144,7 +1144,7 @@ fn dependencies() {
11441144
let conn = app.diesel_database.get().unwrap();
11451145
let user = new_user("foo").create_or_update(&conn).unwrap();
11461146
let c1 = CrateBuilder::new("foo_deps", user.id).expect_build(&conn);
1147-
let v = new_version(c1.id, "1.0.0", None).save(&conn, &[]).unwrap();
1147+
let v = VersionBuilder::new("1.0.0").expect_build(c1.id, &conn);
11481148
let c2 = CrateBuilder::new("bar_deps", user.id).expect_build(&conn);
11491149
new_dependency(&conn, &v, &c2);
11501150
}

src/tests/schema_details.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use diesel::prelude::*;
22
use diesel::sql_types::Text;
33

4-
use app;
4+
use TestApp;
55

66
#[test]
77
fn all_columns_called_crate_id_have_a_cascading_foreign_key() {
@@ -64,11 +64,12 @@ struct TableNameAndConstraint {
6464
fn get_fk_constraint_definitions(column_name: &str) -> Vec<TableNameAndConstraint> {
6565
use diesel::sql_query;
6666

67-
let (_r, app, _) = app();
68-
let conn = app.diesel_database.get().unwrap();
67+
let (app, _) = TestApp::init().empty();
6968

70-
sql_query(include_str!("load_foreign_key_constraints.sql"))
71-
.bind::<Text, _>(column_name)
72-
.load(&*conn)
73-
.unwrap()
69+
app.db(|conn| {
70+
sql_query(include_str!("load_foreign_key_constraints.sql"))
71+
.bind::<Text, _>(column_name)
72+
.load(conn)
73+
.unwrap()
74+
})
7475
}

0 commit comments

Comments
 (0)