Changeset 474 in main


Ignore:
Timestamp:
11/14/11 15:15:10 (8 years ago)
Author:
pcosquer
Message:

tests: add a custom test runner

  • always clean up the xapian database
  • tasks: raise exceptions
Location:
trunk/openPLM
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/openPLM/plmapp/csvimport.py

    r471 r474  
    342342 
    343343        parent.block_mails() 
     344        parent.object.no_index = True 
    344345        child.block_mails() 
     346        child.object.no_index = True 
    345347        self.objects.append(parent) 
    346348        self.objects.append(child) 
  • trunk/openPLM/plmapp/tests/base.py

    r472 r474  
    77from openPLM.plmapp.controllers import PLMObjectController 
    88 
     9import os.path 
     10import shutil 
     11from django.conf import settings 
    912 
    1013class BaseTestCase(TestCase): 
     
    2326        self.user = User(username="user") 
    2427        self.user.set_password("password") 
     28        self.user.email = "test@example.net" 
    2529        self.user.save() 
    2630        self.user.get_profile().is_contributor = True 
     
    4044        return f 
    4145 
     46    def tearDown(self): 
     47        if os.path.exists(settings.HAYSTACK_XAPIAN_PATH): 
     48            shutil.rmtree(settings.HAYSTACK_XAPIAN_PATH) 
     49        super(BaseTestCase, self).tearDown() 
     50 
  • trunk/openPLM/plmapp/tests/csvimport.py

    r472 r474  
    11 
     2import os.path 
     3import shutil 
    24import cStringIO, StringIO 
     5from collections import defaultdict 
     6 
     7from django.conf import settings 
     8from django.core import mail 
    39from django.contrib.auth.models import User 
    410from django.test import TransactionTestCase 
     11 
     12from celery.signals import task_prerun 
    513 
    614from openPLM.plmapp.models import GroupInfo, PLMObject, ParentChildLink 
     
    1624    def setUp(self): 
    1725        super(CSVImportTestCase, self).setUp() 
     26        self.sent_tasks = defaultdict(list) 
    1827        self.cie = User.objects.create(username="company") 
    1928        p = self.cie.get_profile() 
     
    2433        self.cie.groups.add(self.leading_group) 
    2534        self.user = User(username="user") 
     35        self.user.email = "test@example.net" 
    2636        self.user.set_password("password") 
    2737        self.user.save() 
     
    3343        self.user.groups.add(self.group) 
    3444        self.client.post("/login/", {'username' : 'user', 'password' : 'password'}) 
    35  
     45        self.handler = task_prerun.connect(self.task_sent_handler) 
     46 
     47    def task_sent_handler(self, sender=None, task_id=None, task=None, args=None, 
     48                      kwargs=None, **kwds): 
     49        self.sent_tasks[task.name].append(task) 
     50 
     51    def tearDown(self): 
     52        super(CSVImportTestCase, self).tearDown() 
     53        task_prerun.disconnect(self.handler) 
     54        if os.path.exists(settings.HAYSTACK_XAPIAN_PATH): 
     55            shutil.rmtree(settings.HAYSTACK_XAPIAN_PATH) 
     56         
    3657    def get_valid_rows(self): 
    3758        return [[u'Type', 
     
    95116        sp1 = get_obj("SinglePart", "sp1", "s", self.user) 
    96117        self.assertEquals("SP1", sp1.name) 
     118        self.assertEqual(len(mail.outbox), len(objects)) 
     119        self.assertEqual(1, len(self.sent_tasks["openPLM.plmapp.tasks.update_indexes"])) 
    97120 
    98121    def test_import_csv_invalid_last_row(self): 
     
    108131                PLMObjectsImporter, csv_rows) 
    109132        self.assertEquals(plmobjects, list(PLMObject.objects.all())) 
     133        self.assertEqual(len(mail.outbox), 0) 
     134        self.assertFalse(self.sent_tasks["openPLM.plmapp.tasks.update_indexes"]) 
    110135 
    111136    def get_valid_bom(self): 
  • trunk/openPLM/plmapp/tests/views.py

    r472 r474  
    2626This module contains some tests for openPLM. 
    2727""" 
    28 import os.path 
    29 import shutil 
    30 from django.conf import settings 
    3128from django.contrib.auth.models import User 
    3229from django.test import TestCase 
     
    5956        brian.get_profile().save() 
    6057        self.brian = brian 
    61  
    62     def tearDown(self): 
    63         if os.path.exists(settings.HAYSTACK_XAPIAN_PATH): 
    64             shutil.rmtree(settings.HAYSTACK_XAPIAN_PATH) 
    65          
    66         super(CommonViewTest, self).tearDown() 
    6758 
    6859    def post(self, url, data=None, follow=True, status_code=200, 
  • trunk/openPLM/settings_tests.py

    r459 r474  
    106106AUTH_PROFILE_MODULE = 'plmapp.UserProfile' 
    107107 
    108 EMAIL_HOST = 'localhost' 
    109 EMAIL_PORT = 1025 
    110  
     108EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend' 
    111109###################### 
    112110# openPLM's settings # 
     
    145143 
    146144# celery stuff 
     145BROKER_BACKEND = "memory" 
     146CELERY_ALWAYS_EAGER = True 
     147CELERY_EAGER_PROPAGATES_EXCEPTIONS = True 
     148 
    147149import djcelery 
    148150djcelery.setup_loader() 
    149151 
    150 BROKER_BACKEND = "memory" 
    151 CELERY_ALWAYS_EAGER = True 
    152  
    153152COMPANY = "company" 
    154153 
     154TEST_RUNNER = "openPLM.plmapp.tests.runner.OpenPLMTestSuiteRunner" 
     155 
Note: See TracChangeset for help on using the changeset viewer.