1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-26 00:32:42 +01:00
No description
Find a file
epriestley 0aa67025f2 In unit test environments, install all applications
Summary:
Normalize the unit test environment by installing all applications.

The immediate issue this fixes is that `testDropUnknownSenderMail` depends on Maniphest being installed. Some possible fixes are:

  # Don't rely on the Maniphest mail receiver for the test (e.g., write a stub/dummy/mock receiver).
  # Explicitly make sure Maniphest is installed before running the test.
  # Normalize the test environment to install all applications.

I don't like (1) much because it turns a pretty good 10 line test into a bunch of stub classes or mock junk. I'll do it if we have more uses after a few more diffs, but so far running these tests against real code hasn't created a dependency mess and we get more coverage.

I don't like (2) much because I think requiring tests to do this will do more harm than good. The number of issues we'll hypothetically uncover by exposing unrealized application interdependencies is probably very small or maybe zero, and they're probably all trivial. But tests with an undeclared but implicit dependency on an application (e.g., Differential tests depend on Differential) are common.

So here's (3), which I think is reasonable.

I also simplified some of this code a little bit, and moved the Application object cache one level down (this was sort of a bug -- installation status is variant across requests).

Test Plan: Added unit test.

Reviewers: wez, btrahan

Reviewed By: wez

CC: aran

Differential Revision: https://secure.phabricator.com/D5938
2013-05-16 12:25:26 -07:00
bin First Diff of Test Data Generator 2013-04-12 14:07:16 -07:00
conf Using PhabricatorExternalAccount 2013-04-28 13:22:33 -07:00
externals Add Balanced Payments API 2013-04-25 09:47:30 -07:00
resources Begin improving the soundness of received mail 2013-05-13 16:32:19 -07:00
scripts Begin improving the soundness of received mail 2013-05-13 16:32:19 -07:00
src In unit test environments, install all applications 2013-05-16 12:25:26 -07:00
support Fail quietly when failing to write access log 2013-05-09 16:08:26 -07:00
webroot Fix long thread titles in Conpherence 2013-05-14 12:32:37 -07:00
.arcconfig Delete license headers from files 2012-11-05 11:16:51 -08:00
.divinerconfig Centralize rendering of application mail bodies 2012-07-16 19:01:43 -07:00
.editorconfig Specify config for text editors 2012-11-03 22:34:44 -07:00
.gitignore Ignore and README for support/bin 2013-04-03 12:58:39 -07:00
LICENSE Delete license headers from files 2012-11-05 11:16:51 -08:00
NOTICE Increment year. 2013-01-03 05:45:08 -08:00
README Fix typo in README 2013-03-13 15:03:55 -07:00

Phabricator is an open source collection of web applications which make it
easier to write, review, and share source code. Phabricator was developed at
Facebook.

This is an early release. It's pretty high-quality and usable, but under
active development so things may change quickly.

You can learn more about the project and find links to documentation and
resources at: http://phabricator.org/

LICENSE

Phabricator is released under the Apache 2.0 license except as otherwise noted.