Commit Graph

228 Commits

Author SHA1 Message Date
Tim Abbott d537bf568c tests: Add a backend test for @-mentions.
(imported from commit da4e241c445d080b58e131d95d7d9fe89ecf31f0)
2013-06-25 13:46:53 -04:00
Steve Howell 8363f9bfc6 Add mode to run only fast tests.
(imported from commit acb569a54551bdd31aad53eb47191771ae670493)
2013-06-25 08:46:02 -04:00
Steve Howell 660ee6571d Disable embedly everywhere.
(Before it had been disabled only on prod/staging, but we are
removing it everywhere, motivated by making tests run faster.
In particular, the call to embedly_client.is_supported() was
expensive, as it went over the Internet.)

(imported from commit ea12bf6e7ae84ce7e8023a0d314ecc4c07cbc0a8)
2013-06-25 08:46:02 -04:00
Steve Howell 67058cc26f Enable back door for clearing user's rate-limit history.
(This is helpful to make the tests run faster.)

(imported from commit 48c1beaed8cca76976bd6f54224c33460b55ceac)
2013-06-25 08:46:02 -04:00
Tim Abbott 222ef672b5 [manual] Use ujson instead of simplejson.
This saves something like 15ms on our 1000 message get_old_messages
queries, and will save even more when we start sending JSON dumps into
our memcached system.

We need to install python-ujson on servers and dev instances before
pushing this to prod.

(imported from commit 373690b7c056d00d2299a7588a33f025104bfbca)
2013-06-24 10:17:10 -04:00
Kevin Mehall 4f5b4fdb67 Bugdown: Elipsis followed by TLD should not be linkified. Trac #1388.
(imported from commit 3929e4bc68872e5f5ed58f35dd1b4eb53a2e5990)
2013-06-21 15:33:17 -04:00
Steve Howell 2ee31f46cb Enforce timely tests more aggressively.
(imported from commit b14e484bd72f0fa19b246efeec64815633217a2f)
2013-06-20 16:52:16 -04:00
Steve Howell 92539daa99 Enforce timely test completion.
(imported from commit f2e3ff32b7372cc916cc60ba04abcb90c39197e2)
2013-06-20 16:52:16 -04:00
Steve Howell fac3b756b7 Add decorator to annotate slow Python tests.
(imported from commit adab5330e7f14f38da6755648ae7741fde48d852)
2013-06-20 16:52:16 -04:00
Steve Howell ca144b5297 Eliminate MyResult class by calling test method directly.
Instead of calling test(result), we emulate the behavior of
calling SimpleTestCase.__call__, minus the results protocol.

(imported from commit e12e3d5caa8726c050a2a7cfa583ca4d571d6cbb)
2013-06-20 13:42:32 -04:00
Steve Howell 1e48388728 removed obsolete comment
(imported from commit e04378869834189c26579727fb7727e63e2e1b5d)
2013-06-20 13:13:39 -04:00
Steve Howell 0e40dc9fc6 Print "Running <test>" from within run_test(), not MyResult.
(imported from commit c8e150c5bd56eabd60c167c207655efc2059d6af)
2013-06-20 13:13:39 -04:00
Steve Howell 618ec40ef7 Import time module at top of tests.py
(imported from commit daf6d20f0c452a51b0485c7dca01d1e541661fd5)
2013-06-20 13:13:39 -04:00
Steve Howell cdc095c3b3 Extract run_test() method in back end tests.
(imported from commit 264bf689b282fccf8b4e423060fe0c4d2708b934)
2013-06-20 13:13:39 -04:00
Steve Howell c5631eb489 Make test_emoji about 500ms faster.
The test_emoji test makes sure that we build the correct image
tag for all of our emojis.  It's the same underlying algorithm
for all 800+ images, so we now test it in O(1) times instead
of O(N) time.  Randomly sampling the emojis makes the tests
slightly non-determinisitic in a theoretical sense, but not in
a practical sense.

(imported from commit c78b50072953f2c081fca0272b9ecf762a4802db)
2013-06-20 10:24:40 -04:00
Steve Howell 07afbabb79 Double speed of Python tests by removing fixtures code.
(We don't need the fixtures code once we override Django's
run_suite() method not to clobber our test database, since
all our tests use the same data anyway, and since Django
runs all the tests in a transaction and rolls back their
changes.)

(imported from commit d9daf09be3967de2de30934173b882d3d6b9ea27)
2013-06-20 09:41:34 -04:00
Steve Howell 3c79f6fa53 Make RateLimitTests less brittle to speedy tests
(imported from commit 1b81356d90bdb19b0550363aebb2f1426d386d10)
2013-06-20 09:41:25 -04:00
Steve Howell 712dce8a97 Do not have Django wipe out our test database during Python tests.
In tools/test-backend, we build the test database before calling
"manage.py test, so there is no reason for Django to wipe it
clean.

(imported from commit 7b09e9cc1a9259900ec1cc4f9ebbcacab1efb265)
2013-06-20 09:41:25 -04:00
Steve Howell ad03644371 Add help message for method-missing scenario in tests.
(We now have a full replacement for TestResult, but we don't
support the full API of TestResult.  If folks were to add new
tests that caused TestCase to call our class with an unsupported
method, this diff will provide hopefully a more clear error
message.)

(imported from commit 92033b12a1a901bd649ecb03e08779aa76bfef7a)
2013-06-20 09:38:53 -04:00
Steve Howell f2f9fb7c3b Simplify run_suite for Python tests so we can debug tests more easily.
We use a simplified version of run_suite in our subclass of
DjangoTestSuiteRunner so that we can have more control over failing
fast and indicating progress.  This change also speeds up the tests
by taking roughly 200 lines unittest/Django code out of the picture.
(We basically reinvent a simpler TextTestRunner and TextTestResult.)

(imported from commit 5216b6b582b071bd7c9e923c9886c3bc61faf581)
2013-06-20 09:37:00 -04:00
Steve Howell 25c9f5bace Subsume Django method into our codebase for code review clarity.
(This commit will probably be squashed, but it makes the subsequent
diffs more clear with respect to how we remove functionality from
run_tests.)

(imported from commit 9d0edcd5282a0f90ebd38e0ac229ef874dc00504)
2013-06-20 09:36:49 -04:00
Steve Howell 00a2b23843 Sort the import statements in tests.py (cosmetic).
(imported from commit d730d73841818f7104522b126e7faf1735c897fd)
2013-06-20 09:36:49 -04:00
Kevin Mehall 334424ae79 bugdown: TLD and parentheses shouldn't make it a link. Trac #1364
(imported from commit d4da7ec080a6a8362b6370ced9ddc10d52443452)
2013-06-17 10:08:13 -04:00
Leo Franchi 625f8427e6 Return both subscribed and unsubscribed stream information when listing streams
(imported from commit 0aee84712eefd93aebc1041b371e471182eb7e9b)
2013-06-13 10:06:34 -04:00
Steve Howell d740d7c082 Show user-uploaded avatars on the website.
Show user-uploaded avatars on the website for users who have
UserProfile.avatar_source == 'U'.  (Continue to show gravatars
for other users.)  This includes the home page, the visible-phone
div, and the settings page.

This fix does NOT address a few things:
* There is no GUI to actually upload user images yet on the website.
* The !gravatar syntax in bugdown will continue to show gravatar images
  only.
* We are not changing identicon behavior.

(imported from commit 9f5ac0bbe21ba56528048233aab2430e4dd431aa)
2013-06-12 15:34:51 -04:00
Tim Abbott 0ad1094e45 bugdown: Add custom per-realm filters to linkify certain strings.
I've tried to do this in a way that's scalable and easily configured,
so that we can add new such filters for customers on-demand without
needing to add anything other than a bit of configuration.

Once we're confident in the arguments to this system, I think we'll
want to move the regular expression lists into the database so that we
don't need to do a prod push to modify the regular expression lists.

The initial set of regular expressions are:
(1) Linkifying e.g. "trac #224" in the Humbug realm, so we're exercising this code.
(2) The various ticket number things CUSTOMER7 uses for the CUSTOMER7 realm.

(imported from commit 992b0937b9012c15a7c2f585eb0aacb221c52e01)
2013-06-05 17:48:21 -04:00
Tim Abbott ceacf6f97e tests: Don't call bugdown.convert() directly.
(imported from commit 495e8a050d8bb69e33ae7c0da06ffbec96e11c31)
2013-06-05 17:48:21 -04:00
Leo Franchi 0b5b1dafc4 Add a rate limiting system to our backend
(imported from commit a1218618918b4dedc77307e2f277665e7dd8fa22)
2013-06-04 09:43:09 -04:00
Tim Abbott 2b1799b71c bugdown: Fix handling of twitter-format links that aren't actually tweets.
(imported from commit 60512147d8d303ff07cf1e86306fd14b1490e708)
2013-05-30 10:29:41 -04:00
Tim Abbott abd9e4e635 Use proper randomization when generating new API keys.
Previously we were generating API keys deterministically using a hash
of the user's email address; this is clearly not a good long-term
approach.

(imported from commit 14d0c7c9edbc45b3ae1d17a43765ad9726338d4d)
2013-05-29 15:11:24 -04:00
Tim Abbott 1bfa3d4505 tests: Fix assumption that hamlet was subscribed to stream Scotland.
This would cause annoying issues where occasionally after you
regenerated the database, GetOldMessagesTest might fail.

(imported from commit dc0fc46e3c6ce4c865ca4886823a22bda1a4eff4)
2013-05-28 11:50:56 -04:00
Leo Franchi 4fc7c7c797 Support JIRA workflow post-function web hooks
(imported from commit cf70730f4c5a847835f07f0048559269f3afd06e)
2013-05-24 21:23:56 -04:00
Leo Franchi 9bfec549af Don't use meetup.com in our linkify tests as that triggers Embedly
(imported from commit ea1c33d9ca36cfe78319470f4407ba8faff6b397)
2013-05-22 18:10:02 -04:00
acrefoot 94c61f5507 [manual] Humbug testing databases now backed by postgres
Currently our test database is backed by sqlite; this commit moves
us to using postgres for our all database needs. This, in conjunction
with the patched django on github, allow us to have fewer hacks and
more true-to-life tests. It also sets the stage for testing the bulk_create
and schema search_path patches made to django.

Developers will need to run:
./tools/postgres-init-test-db
./tools/do-destroy-rebuild-test-database

this is assuming that they have already run:
./tools/postgres-init-db
./tools/do-destroy-rebuild-database

at some point on this pg_cluster. (The ordering is important; it will other-
wise complain about the south_migration table).

(imported from commit c56c6f27e13df7ae10b2e643e65d669dde61af3d)
2013-05-20 23:55:03 -04:00
Leo Franchi cf3f62185c Handle unknown JIRA event types
(imported from commit 3760002996bac0a4c2b7b4cc8bff2026fb11978a)
2013-05-20 23:37:57 -04:00
Waseem Daher 47ac589f87 Make inline previews smaller.
(imported from commit 228f6f6f296877810824f98ea8001e47cf955cf1)
2013-05-09 10:44:08 -04:00
Luke Faraone fac83ed2b7 [manual] Add support for Embedly Extract
For sites that are supported, we now grab thumbnails for images + video
embed code for videos and use them in lieu of our existing embed code.

We also embed rich non-script content.

Special casing is done so that we don't embed images twice.

Some testcases were modified to avoid triggering Embed.ly

The manual step is to install python-embedly.

(imported from commit d725bab91675c61953116c5ca741055fce49724e)
2013-05-09 10:42:49 -04:00
Leo Franchi 23847545eb Update settings backend tests to handle new frontent config options
(imported from commit a17f931d51e11edec978c249ae116c734fb8d267)
2013-05-09 10:35:48 -04:00
Jeff Arnold 105fdc076b Reserve height=100 for images so that collapsing takes them into account
Addresses #1204

(imported from commit 9a1f4b13ab14c4b8fc4eab50178b9c28f477fcd7)
2013-05-02 18:53:34 -04:00
Steve Howell be1e18f864 Support branches whitelist for github
(imported from commit 066bb8ee028778cb39b43afc9737fd2117c91928)
2013-05-01 17:19:53 -04:00
Steve Howell b645c67994 Use stream from github webhook call (if supplied).
(imported from commit 4f57c4dec8ab5e833583a2b5912a92e8a2bd34c0)
2013-05-01 17:19:53 -04:00
Steve Howell fbad47ec28 api_key is url parm for jira webhook
(imported from commit 24624a9fcd7e6fdc15d23c2874a04e1465c3f3cf)
2013-04-30 18:14:11 -04:00
Steve Howell 23f0d0bcb7 support stream parameter for jira to override default stream
(imported from commit b3be7b837f326968f9742c25ba04bdaaf6476b75)
2013-04-30 13:24:47 -04:00
Luke Faraone 71a91197fa Enable absolute imports.
See PEP 328[1] for details. This feature was introduced in Python 2.5 and
will become mandatory in Python 3.

[1]: http://www.python.org/dev/peps/pep-0328

(imported from commit 7444eeba8a08d5f91b94c7921848f2274979bd76)
2013-04-23 09:51:17 -07:00
Leo Franchi d34bdedcdb Add tests for pivotal tracker integration
(imported from commit 3d3cff2eed91029ebacc5a0be284572db1a01135)
2013-04-19 13:46:41 -04:00
Tim Abbott 5ab44f6993 Add note to invite notification on historical messages.
(imported from commit ea3da4bd5b3e461b37b1d5af685d96bf5ecdb847)
2013-04-12 15:43:42 -04:00
Zev Benjamin f6a6a6b220 Add per-stream desktop notifications
(imported from commit b4a0576847b3aec1495f017ca9805febe80c9275)
2013-04-10 16:11:27 -04:00
Zev Benjamin 7e532a02ad Simplify subscription property views
This also changes the API for GET /json/subscriptions/property to
only retrieve the property for a particular stream instead of
returning all streams and their properties.  We weren't using this
functionality anywhere and the change makes the API more consistent.

(imported from commit 2799aec2550fd0558e2282beb19734d60801bdb8)
2013-04-10 16:11:27 -04:00
Zev Benjamin a2010871e3 Make subscription properties less free-form
(imported from commit eda607c2abfa51d2dadddc7b9ecba3e2d0b5be4d)
2013-04-10 16:11:27 -04:00
Leo Franchi a9151e4bc3 Handle populate_db generating read messages
NOTE: If you are getting test failures, please run generate-fixtures --force.

(imported from commit 7b44b40e3955742edf337335deb0d92829c7e2e1)
2013-04-09 11:56:32 -04:00