Commit Graph

644 Commits (stable)

Author SHA1 Message Date
Alejandro Alonso b82f6a4743 Making the project name not mandatory and using the owner username for the slug generation 2014-10-03 22:27:10 +02:00
Andrey Antukh ad16976434 Rename and improve test names on us autoclossing tests module. 2014-10-03 20:13:02 +02:00
Andrey Antukh 101cad3358 Fix unexpected exception when delete task with deleted milestone. 2014-10-03 20:13:02 +02:00
Andrey Antukh b1cb7fdf66 Fix wrong handling patch request with user_stories list on milestone resource. (fix #1163) 2014-10-02 04:14:59 +02:00
Andrey Antukh 56e98bba11 Fix wrong handing integrity error on register or accept invitation. 2014-10-02 03:32:38 +02:00
Jesús Espino 7c5b85ea5c Fix small test fails introduced in the commit 27f12f7 2014-10-02 01:44:48 +02:00
David Barragán Merino 6725a43a4f Merge pull request #76 from taigaio/events-improvements
Taiga-events integration (realtime taiga)
2014-09-29 18:06:38 +02:00
Andrey Antukh 43e16c2c13 Taiga-events integration (realtime taiga) 2014-09-29 17:49:47 +02:00
David Barragán Merino fbff7a8b88 Add Copyright+license text 2014-09-29 11:57:57 +02:00
David Barragán Merino b01396028d Refactor user profile form and fix #1098 2014-09-25 20:05:34 +02:00
David Barragán Merino 7a88df1e08 Change django.db.models.loading.get_model (deprecated in django 1.7) to django.apps.apps.get_model 2014-09-25 11:32:50 +02:00
Andrey Antukh 8df1b2a799 Regression fix: history entry should not be marked as hidden ...
... when change comes with a comment.
2014-09-18 14:42:13 +02:00
Andrey Antukh 97dbffa680 Fix/Improve tests for new changes introduced in bulk order update process. 2014-09-17 16:55:43 +02:00
Andrey Antukh 23f349a73f Implemented the ability of mark some history entries as hidden.
Snapshots with order fields (that are considered not important
for preview) are automatically marked as hidden.
2014-09-17 16:53:30 +02:00
Andrey Antukh 6224a9d4ce Improve attachments factories and fix tests related to storage refactor. 2014-09-17 15:05:10 +02:00
Andrey Antukh 3061425a67 Improvements and fixes on tests. 2014-09-16 10:48:43 +02:00
Andrey Antukh 01d524adb8 Setup django on start testrunner. 2014-09-16 10:48:43 +02:00
Andrey Antukh 59c7478075 Patch client test fixture with useful login method.
This removes django-testclient-extensions because
it doesn't compatible with django 1.7.
2014-09-16 10:48:42 +02:00
Andrey Antukh c1b011fa99 Refactor test factories to new factoryboy version (more compatible with django 1.7) 2014-09-16 10:48:42 +02:00
Jesús Espino 6d78c79018 Adding import api 2014-09-08 12:33:32 +02:00
Andrey Antukh 0b375be614 Replace direct JSONRender usage with taiga own json module on all tests.
So unify the json interface in all tests code.
2014-09-06 02:00:09 +02:00
Andrey Antukh 4f27a8ba4d Fix affected tests to previous attachment fixes. 2014-09-06 00:43:32 +02:00
Andrey Antukh f2aa75e4a5 Remove usage of django-testclientextensions (backport of some commits from django1.7 branch) 2014-09-05 22:33:07 +02:00
Jesús Espino 1578f4352c Fix bug #783: Verify email existence on membership objects 2014-09-03 18:57:33 +02:00
David Barragán Merino 2f0471a3a4 Fix Bug #828: Validate username 2014-09-01 17:30:40 +02:00
David Barragán Merino ff8dd9e613 Fix some errors 2014-09-01 17:30:40 +02:00
Jesús Espino 1c72ddb01e Fixed mdrender tests 2014-08-27 10:36:36 +02:00
Jesús Espino c778f476be Improved a little some tests speed 2014-08-26 20:06:24 +02:00
Jesús Espino 0d9311613d On retrieve not apply the filter, only check the permissions 2014-08-19 10:07:20 +02:00
Jesús Espino 8bd6e4fb2d Fixed proyect notification policy tests 2014-08-18 12:48:32 +02:00
Jesús Espino e4def00dce Updated test to the new bulk ordering format 2014-08-12 10:23:31 +02:00
Jesús Espino 50ffc1caf9 Fixed tests 2014-08-12 09:25:56 +02:00
Jesús Espino 26e462e182 Fixed issue #298: Now permissions on API listings works 2014-08-08 13:43:07 +02:00
Anler Hp 47a28cc3dc Create membership for user creating project <=> role exists 2014-08-07 16:30:28 +02:00
Anler Hp 08ca07454a Failing test 2014-08-06 14:09:41 +02:00
Jesús Espino 64a8a137ab Now taking care of delete_last_milestone permission 2014-08-04 19:07:29 +02:00
Alejandro Alonso 3e9c836c7f Adding change email functionality 2014-08-04 10:15:32 +02:00
Anler Hp 196ac5684f Fix api auth tests 2014-08-01 15:07:57 +02:00
Anler Hp 68a579338f Refactoring issues bulk creation 2014-08-01 15:02:10 +02:00
Anler Hp ed603de65f fixing permissions tests 2014-08-01 14:29:30 +02:00
Anler Hp cfec7e12e2 Updating bulk param names in tests 2014-08-01 14:15:19 +02:00
Anler Hp 7944c36e6b Refactoring update order in bulk user-stories 2014-08-01 14:15:19 +02:00
Jesús Espino b567a55598 Adding remove avatar url permissions test 2014-08-01 14:02:46 +02:00
Anler Hp 5515243ed8 Refactoring bulk tasks creation 2014-08-01 13:45:00 +02:00
Anler Hp 58cc11e3d4 Refactoring bulk user stories creation 2014-08-01 11:05:58 +02:00
Jesús Espino 81e5609261 Adding test for change avatar 2014-07-31 16:46:09 +02:00
Jesús Espino 43c8699328 Adding test for change avatar permissions 2014-07-31 16:32:33 +02:00
Jesús Espino dd7d478d05 Adding permissions and testing for resend-invitation service 2014-07-31 14:09:09 +02:00
Jesús Espino 883fd81d06 Adding bulk_create membership tests 2014-07-31 13:46:51 +02:00
Jesús Espino b0807854fe Fixed stats test 2014-07-31 13:23:49 +02:00
Jesús Espino c0c05c7d33 Fixed test_users_resources test 2014-07-31 13:23:49 +02:00
Anler Hp cb66dc168f Change projectId param to project_id bulk members 2014-07-31 13:04:13 +02:00
Jesús Espino 83ad29dec1 Fixed stats tests 2014-07-31 12:40:39 +02:00
Anler Hp 724087e26d Create memberships in bulk on the same project 2014-07-31 12:19:51 +02:00
Jesús Espino b0d96d16df Some tests fixed 2014-07-31 12:00:43 +02:00
Jesús Espino e55acc11c2 Adding test for create of membership 2014-07-31 10:45:59 +02:00
Jesús Espino 1789aa6f06 Adding tests for bulk_create issues 2014-07-31 10:08:23 +02:00
Jesús Espino bb88966635 Fixed some errors and tests on mdrender 2014-07-31 08:59:12 +02:00
Anler Hp 2ca0039852 Fixing commits related to Task #439 2014-07-30 11:43:38 +02:00
Anler Hp 0b02cc4523 Task #422 - Create issues in bulk 2014-07-29 13:43:57 +02:00
Anler Hp 4c2585a891 Task #396 - Filter issues by subject 2014-07-29 13:00:27 +02:00
Anler Hp 6229770c0f Task #436 - Filter user stories by subject 2014-07-29 11:07:47 +02:00
Jesús Espino 945914c12b Adding some test for stats 2014-07-28 09:50:58 +02:00
Anler Hp 33fac4b43a Auto generate slug for projects 2014-07-25 14:19:37 +02:00
Anler Hp e79f0380dd Task #417 - Fixing create project api handler 2014-07-25 13:49:51 +02:00
Anler Hp 3f8af102ab Task #400 - Autolink user to membership if exists
When inviting an user to a project, if the user is already registered,
link her directly to the membership.
2014-07-25 12:57:06 +02:00
Anler Hp 8eed0d03e5 Task #399 - Memberships' resend-invitation handler
In order to resend and invitation email you just POST to detail-url
`memberships-resend-invitation`
2014-07-25 10:50:30 +02:00
Anler Hp 620ad91996 Task #361
Added a test only and appears to work
2014-07-24 14:49:48 +02:00
Anler Hp 95e636b856 Task #406 - Create members in bulk
Example:

        POST /memberships/bulk-create

        [{"project_id": <project id>,
          "role_id": <role id>,
          "email": <member email>}, ...]
2014-07-24 13:06:50 +02:00
Jesús Espino d97edb464c [HUGE CHANGE] Changed the permissions system 2014-07-24 12:19:06 +02:00
Anler Hp 44f9911730 Fix neighbor tests due to change in Issue ordering 2014-07-23 14:44:10 +02:00
Anler Hp 75cecbed70 Task #349 - API fails when DELETE-ing an userstory
Link - https://kaleidos.taiga.io/#/project/taiga/tasks/349
2014-07-23 11:21:52 +02:00
David Barragán Merino 2e6ddbf98f Merge pull request #55 from taigaio/attachments
Check permissions when accessing attachments
2014-07-22 23:32:54 +02:00
Jesús Espino d5df49f59a Big refactor on is_closed calculation 2014-07-22 12:00:25 +02:00
Jesús Espino d32a9562be A lot of refactoring on close us code signals code 2014-07-21 21:23:40 +02:00
Anler Hp 82ddeb69a7 USs: class-based to function-based services 2014-07-11 01:04:27 +02:00
Anler Hp 40260c82ad Tasks: class-based to function-based services 2014-07-11 01:04:17 +02:00
Anler Hp 52f476fb34 Check permissions when accessing attachments
Attachment files dispatching is now done through `RawAttachmentView`
view that checks for appropiate permissions.

When using the development server this view just redirects to the real
media path of the file.

When using the production server the special redirection header
`X-Accel-Redirect` is used instead to improve efficiency by instructing
the server to dispatch the file instead of django, but you also need the
following configuration (Nginx):

location /attachment-files {
    internal;
    alias /path/to/taiga/media/attachment-files;
}

It's recommended to also restrict the direct access from outside to the
`attachment-files` directory by using some configuration like this:

location /media/attachment-files {
    deny all;
}
2014-07-04 12:15:48 +02:00
Anler Hp 0ff888df53 Support for CELERY_ALWAYS_EAGER 2014-07-02 13:40:36 +02:00
Anler Hp 24e9d92af1 Decorator for overriding settings while testing
Usage:
```
from tests.utils import set_settings

@set_settings(FOO='bar')
def test_something():
    ...
```
2014-07-02 13:34:14 +02:00
Anler Hp 0e414267db Integration with RabbitMQ and Celery
First update taiga-vagrant vm if you're using it, you will have access
to the rabbit management console at port 8001 of the host machine.

* Defining tasks
- Tasks must be defined in a `deferred` module of an app, for example,
`taiga.projects.deferred` module.
- Tasks must be decorated and given the name "<app>.<task-name>", for
example in `taiga.projects.deferred` module:
```
from taiga.celery import app

@app.task(name="projects.add")
def add(x, y):
    return x + y
```
- Tasks should be at most just wrappers around service functions to
promote re-usability of those functions from other parts of the code,
say, management commands and the like.

* Calling tasks
Tasks should be called using one of the three functions defined in
`taiga.deferred` module:

- `defer`: Use this function if you need to perform some task
asynchronously and GET THE RESULT back later, for example:
```
result = defer("projects.add", x=1, y=2)
...
result.get() # => 3
```

- `call_async`: Use this function when you want to fire off some
task. No result is get back. For example:
```
call_async("projects.email_user", user)
```

- `apply_async`: Is the same as `call_async` but since it's a function
application and you must pass the args and kwargs together as one
parameter each you are allowed to pass celery-specific
extra-options (but bear in mind this is not recommended!)
```
apply_async("projects.email_user", args=(user,), kwargs={}, routing_key="tasks.email")
```
2014-07-02 09:49:56 +02:00
Anler Hp a8085a2feb Return user photo cropped and with absolute url
Remember to run `pip install -r requirements.txt` to install the
additional dependencies.
2014-07-01 14:38:26 +02:00
Anler Hp 5ff7ec1c00 Return user's gravatar if has no photo set
If the user has no photo set use her gravatar image if available
otherwise use the default avatar image defined in
`settings.DEFAULT_AVATAR_URL`
2014-07-01 12:46:58 +02:00
Anler Hp cfc35d5ed2 Required estimated-start/end dates for milestones 2014-06-27 14:07:50 +02:00
Alejandro Alonso 077de2bf4e Updating occ tests 2014-06-25 16:19:40 +02:00
Anler Hp 0a3a33aac5 Optimizing `Project.update_role_points` method 2014-06-24 12:38:29 +02:00
Alejandro Alonso 9b97a4a9c6 Fixing bug when creating objects with OCCResourceMixin 2014-06-23 16:22:08 +02:00
Anler Hp e98d666a40 Removing unnecessary setup of test database
We are already using pg arrays so the unpickle function in sql/tags.sql
is not needed, at least by the moment. I'm removing it because it was
entering in an infinite loop when creating the test database.
2014-06-23 12:26:17 +02:00
Anler Hp c89c6e7c31 Merge pull request #51 from taigaio/tags
Tags using pg arrays
2014-06-23 11:34:02 +02:00
Anler Hp 7ebe443394 Adding models.Model explicitly to tagged models 2014-06-23 10:58:14 +02:00
David Barragán Merino 76bc2ac426 Add more licenses agreements to the tests.integration module 2014-06-22 11:33:44 +02:00
David Barragán Merino 270b315fdf Add more licenses agreements to the tests.unit module 2014-06-20 19:48:34 +02:00
David Barragán Merino 767024d0d5 Add more licenses agreements to the tests module 2014-06-19 22:46:31 +02:00
Anler Hp df8a7fb73c create_membership factory function 2014-06-18 14:13:20 +02:00
Anler Hp 08b4be4e0b Re-applying migration in conflict 2014-06-18 11:15:33 +02:00
Anler Hp ac5e163dc5 Implement tags using pg arrays 2014-06-18 10:14:29 +02:00
Alejandro Alonso dcc7ec0bf2 Adding archived user stories feature and enabling API filtering 2014-06-18 09:16:30 +02:00
Alejandro Alonso b78a412b46 Fixing tests 2014-06-17 17:01:59 +02:00
Alejandro Alonso 57e1de23dc Avoiding race conditions in pre_save 2014-06-17 16:34:11 +02:00
Alejandro Alonso e534920c01 Optimistic Concurrency Control first approach 2014-06-17 16:08:59 +02:00
David Barragán Merino d6546dc518 Refactor searches module 2014-06-17 15:10:00 +02:00
David Barragán Merino c712e1d8e7 Add some tests of the github connector 2014-06-12 12:16:37 +02:00
David Barragán Merino f9327c7069 Fix User model: delete first_name, last_name, permisions and groups, add full_name, and github_id, change description to bio 2014-06-12 12:16:36 +02:00
Andrey Antukh 9ee7335ff0 Notifications: add test for notifications app. 2014-06-12 00:12:15 +02:00
Andrey Antukh a4e8bcbe12 History: add tests. 2014-06-12 00:12:15 +02:00
Andrey Antukh 39bb7bcfcd Add additional factories for tests. 2014-06-12 00:12:15 +02:00
Jesús Espino 262776043f Timeline service implementation 2014-06-05 10:08:42 +02:00
Jesús Espino 165b247c6d splitted tests of mdrender in integration and unit tests 2014-06-04 17:27:01 +02:00
Anler Hp aa7ca6e3fc Reconnect disconnected signals in integration tests 2014-06-02 16:57:48 +02:00
Anler Hp 9923e50603 Generic voting application
The stars application has been removed in favor of a more generic voting
application that works with any model. Starring a project is just a
special case of voting a project.

Usage.

Add a vote:

    votes.add_vote(<model instance>, user)

Remove a vote:

    votes.remove_vote(<model instance>, user)

Get the queryset of users that voted an object:

    votes.get_voters(<model instance>)

Get the number of votes an object has:

    votes.get_votes(<model instance>)

Get the objects of type <model> voted by an user:

    votes.get_voted(user, <model>)

The issues application is already making use of the votes application
through the following urls:

        /api/v1/issues/<id>/upvote      <- url name is "issues-upvote"
        /api/v1/issues/<id>/downvote    <- url name is "issues-downvote"
2014-06-02 12:03:09 +02:00
Anler Hp fcf4747e93 Service for adding, removing and listing votes 2014-05-30 12:43:34 +02:00
Andrey Antukh baeab00e28 Fix stars tests. 2014-05-28 18:30:41 +02:00
Andrey Antukh a998ac0660 Remove global imports from test factories. 2014-05-28 12:55:33 +02:00
Andrey Antukh cefbcda91d Load tags sql on connection is created on tests. 2014-05-28 12:51:44 +02:00
Anler Hp 34f0dd6f76 List fans and starred projects
List project fans:

     /projects/<project id>/fans
     /projects/<project id>/fans/<user id>

List user starred projects:

     /users/<user id>/starred
     /users/<user id>/starred/<project id>

Also a "star" field with the stars count of a project is included in the
project detail and list responses.
2014-05-27 17:24:57 +02:00
Anler Hp b56dfe7cf5 Star/Unstar projects 2014-05-27 14:40:56 +02:00
Anler Hp a4bb6e7eee Moving neighbors tests to tests/integration 2014-05-27 13:30:02 +02:00
Anler Hp bc70ab8cc9 Moving fixture into standalone module and new module tests.utils 2014-05-27 13:28:46 +02:00
Andrey Antukh 4ec6ba621b Make integration tests as functions. 2014-05-26 17:33:12 +02:00
Andrey Antukh 2b087678b9 Remove domains. 2014-05-26 17:33:12 +02:00
David Barragán Merino f2e9c55a2c Fix tests (II) 2014-05-22 20:43:24 +02:00
David Barragán Merino ada51440e7 Fix tests 2014-05-22 20:26:36 +02:00
Anler Hp 8003abbbef Moving neighbors logic into standalone module 2014-05-22 18:34:03 +02:00
Anler Hp ac49a76146 Automatically skip slow tests
You can mark a test as slow using:

    @pytest.mark.slow
    def test_something():
        ...

Use the option "--runslow" to tell the test runner to also include slow
tests:
        py.test --runslow ...
2014-05-22 18:34:03 +02:00
Anler Hp 55f5c70e4e Turning off signals dispatch when testing units
Model signals pre_save and post_save will be turned off when running
unit tests because they are interfering with the tests.
2014-05-22 18:34:03 +02:00
Anler Hp e1fdc36301 Pytest mutable object fixture.
Usage:
        def test_something(object):
            # mutate object as needed
2014-05-22 18:34:03 +02:00
Jesús Espino bb73c2c06d Flake8 corrections 2014-05-22 13:14:28 +02:00
Jesús Espino 5e95175654 Adding render_and_extract function to mdrender service 2014-05-22 13:05:45 +02:00
Jesús Espino 6a48e28ca4 Improving coverage of mdrender to 100% 2014-05-21 18:57:37 +02:00
Jesús Espino c7ee910647 Some refactoring on mdrender 2014-05-21 17:51:43 +02:00
Andrey Antukh 1f1c313ca6 Add tests for project automatic sequence create/delete operations. 2014-05-21 12:38:29 +02:00
Andrey Antukh d601ecba9a Minor cosmetic fixes on pytest integration tests. 2014-05-21 11:01:47 +02:00
Andrey Antukh 363e7ac1d9 Add test for sequences. 2014-05-21 11:01:47 +02:00
Jesús Espino f6ea608a04 Moving wiki mentions to an extension 2014-05-20 12:23:59 +02:00
Jesús Espino 4bae101c83 Fixed wiki tests broken accidentally 2014-05-20 11:33:20 +02:00
Jesús Espino 40111dac47 Some extra tests for the wiki 2014-05-20 11:33:20 +02:00
Jesús Espino ec49205ae6 Removing unnecesary commented tests 2014-05-19 12:51:36 +02:00
Jesús Espino be5e37187c Adding some tests and a improved version of the wikilinks extension 2014-05-16 22:20:01 +02:00
David Barragán Merino 2bc3f3560b US #73: Filter entries by a key list 2014-05-16 09:58:42 +02:00
David Barragán Merino d786a1ba95 US #73: Create a user schemaless storage system 2014-05-14 14:01:31 +02:00
David Barragán Merino 4554c0919d Remove unnecessary codding sentence 2014-05-14 13:16:44 +02:00
Jesús Espino e824932f4c Add mdrender module 2014-05-09 12:29:12 +02:00
ikame ac0345047b Some integration tests for auth api. 2014-04-30 09:07:05 +02:00
ikame d22cbb6538 New tests skeleton and examples using pytest
Instructions (from the project root):
1. pip install -r requirements-devel.txt
2. py.test
2014-04-29 14:02:46 +02:00