Add support for tracking the is_uploaded status in the results table (#312)

* Add support for tracking the is_uploaded status in the results table

* Add unit tests for measurement upload status

This implements: https://github.com/ooni/probe/issues/1457

* Update cmd/ooniprobe/internal/database/actions.go

Co-authored-by: Simone Basso <bassosimone@gmail.com>
This commit is contained in:
Arturo Filastò 2021-04-30 17:08:16 +02:00 committed by GitHub
commit ac7d7dc8a3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 90 additions and 3 deletions

View file

@ -86,15 +86,36 @@ func TestMeasurementWorkflow(t *testing.T) {
if err != nil {
t.Fatal(err)
}
m1.IsUploaded = true
err = sess.Collection("measurements").Find("measurement_id", m1.ID).Update(m1)
if err != nil {
t.Fatal(err)
}
var m2 Measurement
err = sess.Collection("measurements").Find("measurement_id", m1.ID).One(&m2)
if err != nil {
t.Fatal(err)
}
m2.IsUploaded = false
err = sess.Collection("measurements").Find("measurement_id", m2.ID).Update(m2)
if err != nil {
t.Fatal(err)
}
if m2.ResultID != m1.ResultID {
t.Error("result_id mismatch")
}
err = UpdateUploadedStatus(sess, result)
if err != nil {
t.Fatal(err)
}
var r Result
err = sess.Collection("measurements").Find("result_id", result.ID).One(&r)
if r.IsUploaded == true {
t.Error("result should be marked as not uploaded")
}
done, incomplete, err := ListResults(sess)
if err != nil {
@ -166,6 +187,7 @@ func TestDeleteResult(t *testing.T) {
if err != nil {
t.Fatal(err)
}
if m2.ResultID != m1.ResultID {
t.Error("result_id mismatch")
}