Closed Bug 762304 Opened 9 years ago Closed 9 years ago

generate full set of testdata using fakedata.py

Categories

(Socorro :: Database, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: rhelmer, Assigned: rhelmer)

References

Details

Right now we have a small set of hardcoded test data:
https://github.com/mozilla/socorro/tree/master/tools/dataload

It's too small and incomplete to be used for any but the most basic test cases. What we'd really like is something that is:

1) relatively large (e.g. 10 crashes per hour)
2) covers more than one product, and each release channel we care about (for testing channel-specific behavior)
3) quick and automatic date-bumping - we want the data to remain static across test runs, except the dates should be bumped to be relative to the current day

Josh and I met a few weeks ago and hammered out some rough requirements:
https://etherpad.mozilla.org/fakedata

The use cases we have in mind are:

* automated tests (QA e.g. selenium, DB e.g. pgTap, functional code tests)
* sample data for devs to develop against
* example for new Socorro installs

The plan is that we will add capability to setupdb_app to:

* generate randomized test data (using placeholders for dates) - this will be checked in
* import data as part of DB setup (with ability to substitute placeholders)

We will probably also want to add a way to augment the existing dataset, without having to regenerate the whole thing - I don't think this is a blocker to getting started, but I want to make it as easy to maintain as we can, and it's going to be too much data to expect people to go through and manipulate by hand long-term.

I have started some preliminary work on:
https://github.com/rhelmer/socorro/tree/fakedata
Assignee: nobody → rhelmer
Status: NEW → ASSIGNED
(In reply to Robert Helmer [:rhelmer] from comment #0)
> 
> I have started some preliminary work on:
> https://github.com/rhelmer/socorro/tree/fakedata

This is now working well enough that we're using it for testing, and also providing a public middlware server that gets refreshed every night:

http://socorro-api-dev-fakedata.allizom.org/

I'd like to land this immediately after the mobeta release. We're using it to test parts of mobeta so it might be appropriate to land it sooner.
Target Milestone: --- → 19
Target Milestone: 19 → 20
Really would like to get this landed, but not urgent so bumping.
Summary: generate full set of testdata using setupdb_app → generate full set of testdata using fakedata.py
Target Milestone: 20 → 21
Depends on: 757274
This is pretty much ready, but currently loading a database is busted until bug 757274 is resolved. I'll make this a PR once that's done:

https://github.com/rhelmer/socorro/compare/bug762304-fakedata
Target Milestone: 21 → 23
Target Milestone: 23 → 25
Target Milestone: 25 → 26
Target Milestone: 26 → 27
Target Milestone: 27 → 28
Target Milestone: 28 → Future
(In reply to Robert Helmer [:rhelmer] from comment #3)
> This is pretty much ready, but currently loading a database is busted until
> bug 757274 is resolved. I'll make this a PR once that's done:
> 
> https://github.com/rhelmer/socorro/compare/bug762304-fakedata

I have added support for postgres 9.2 and the latest socorro schema, so the server is back up and this branch has been rebased.
decided to make this an argument to setupdb_app.py ("--fakedata") instead of a standalone script, which makes it much easier to use.
Commits pushed to master at https://github.com/mozilla/socorro

https://github.com/mozilla/socorro/commit/2e574a9fc1cac2beef34756cca826e72b5f184de
bug 762304 - add --fakedata flag to setupdb_app.py to create a socorro db with synthetic test data

https://github.com/mozilla/socorro/commit/05bb8c3f1248a1a077970b457a9d47f0cfb104bf
Merge pull request #1176 from rhelmer/fakedata

bug 762304 - fakedata generation
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: Future → 46
See followups in bug 868246 and bug 868685
You need to log in before you can comment on or make changes to this bug.