Skip to content

Commit 2f93fdb

Browse files
committed
Fix flagging downloads as processed
1 parent 64a2821 commit 2f93fdb

File tree

1 file changed

+28
-2
lines changed

1 file changed

+28
-2
lines changed

src/bin/update-downloads.rs

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,17 @@ fn collect(tx: &postgres::Transaction,
8282
let download: VersionDownload = Model::from_row(&row);
8383
assert!(map.insert(download.id, download).is_none());
8484
}
85-
println!("updating {} versions", map.len());
85+
println!("updating {} versions (cutoff {})", map.len(),
86+
time::at(cutoff).rfc822());
8687
if map.len() == 0 { return Ok(None) }
8788

8889
let mut max = 0;
8990
let mut total = 0;
9091
for (id, download) in map.iter() {
9192
if *id > max { max = *id; }
92-
if download.counted == download.downloads { continue }
93+
if download.date > cutoff && download.counted == download.downloads {
94+
continue
95+
}
9396
let amt = download.downloads - download.counted;
9497

9598
let crate_id = Version::find(tx, download.version_id).unwrap().crate_id;
@@ -186,6 +189,29 @@ mod test {
186189
assert_eq!(Version::find(&tx, version.id).unwrap().downloads, 1);
187190
}
188191

192+
#[test]
193+
fn set_processed_true() {
194+
let conn = conn();
195+
let tx = conn.transaction().unwrap();
196+
let user = user(&tx);
197+
let krate = Crate::find_or_insert(&tx, "foo", user.id, &None,
198+
&None, &None, &None, &[], &None,
199+
&None, &None).unwrap();
200+
let version = Version::insert(&tx, krate.id,
201+
&semver::Version::parse("1.0.0").unwrap(),
202+
&HashMap::new(), &[]).unwrap();
203+
tx.execute("INSERT INTO version_downloads \
204+
(version_id, downloads, counted, date, processed)
205+
VALUES ($1, 2, 2, current_date - interval '2 days', false)",
206+
&[&version.id]).unwrap();
207+
::update(&tx).unwrap();
208+
let stmt = tx.prepare("SELECT processed FROM version_downloads
209+
WHERE version_id = $1").unwrap();
210+
let processed: bool = stmt.query(&[&version.id]).unwrap().iter()
211+
.next().unwrap().get("processed");
212+
assert!(processed);
213+
}
214+
189215
#[test]
190216
fn increment_a_little() {
191217
let conn = conn();

0 commit comments

Comments
 (0)