Skip to content

Commit e1ea9d3

Browse files
committed
Merge remote-tracking branch 'upstream/master' into more-tests
2 parents 4733f25 + 011c415 commit e1ea9d3

File tree

9 files changed

+165
-274
lines changed

9 files changed

+165
-274
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 & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ extern crate tar;
2727
extern crate url;
2828

2929
use std::borrow::Cow;
30-
use std::collections::HashMap;
3130
use std::env;
3231
use std::sync::atomic::{AtomicUsize, Ordering, ATOMIC_USIZE_INIT};
3332
use std::sync::Arc;
@@ -43,7 +42,7 @@ use cargo_registry::{models, schema, views};
4342
use util::{Bad, RequestHelper, TestApp};
4443

4544
use models::{Crate, CrateOwner, Dependency, Team, User, Version};
46-
use models::{NewCategory, NewTeam, NewUser, NewVersion};
45+
use models::{NewCategory, NewTeam, NewUser};
4746
use schema::*;
4847
use views::krate_publish as u;
4948
use views::{EncodableCrate, EncodableKeyword, EncodableOwner, EncodableVersion};
@@ -271,11 +270,6 @@ fn add_team_to_crate(t: &Team, krate: &Crate, u: &User, conn: &PgConnection) ->
271270

272271
use cargo_registry::util::CargoResult;
273272

274-
fn new_version(crate_id: i32, num: &str, crate_size: Option<i32>) -> NewVersion {
275-
let num = semver::Version::parse(num).unwrap();
276-
NewVersion::new(crate_id, &num, &HashMap::new(), None, None, crate_size).unwrap()
277-
}
278-
279273
fn sign_in_as(req: &mut Request, user: &User) {
280274
req.mut_extensions().insert(user.clone());
281275
req.mut_extensions()

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
@@ -28,8 +28,8 @@ use views::{
2828
EncodableVersionDownload,
2929
};
3030
use {
31-
new_category, new_dependency, new_user, new_version, CrateMeta, CrateResponse, GoodCrate,
32-
OkBool, RequestHelper, TestApp,
31+
new_category, new_dependency, new_user, CrateMeta, CrateResponse, GoodCrate, OkBool,
32+
RequestHelper, TestApp,
3333
};
3434

3535
#[derive(Deserialize)]
@@ -1165,7 +1165,7 @@ fn dependencies() {
11651165

11661166
app.db(|conn| {
11671167
let c1 = CrateBuilder::new("foo_deps", user.id).expect_build(&conn);
1168-
let v = new_version(c1.id, "1.0.0", None).save(&conn, &[]).unwrap();
1168+
let v = VersionBuilder::new("1.0.0").expect_build(c1.id, &conn);
11691169
let c2 = CrateBuilder::new("bar_deps", user.id).expect_build(&conn);
11701170
new_dependency(&conn, &v, &c2);
11711171
});

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)