Index: main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py	(revision 7201)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py	(revision 7203)
@@ -257,4 +257,5 @@
                            self.browser.contents)
 
+        # We can find a student with a certain student_id
         self.browser.open(self.container_path)
         self.browser.getControl("Search").click()
@@ -265,4 +266,5 @@
         self.assertTrue('Anna Tester' in self.browser.contents)
 
+        # We can find a student with a certain fullname
         self.browser.open(self.manage_container_path)
         self.browser.getControl("Search").click()
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_catalog.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_catalog.py	(revision 7201)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_catalog.py	(revision 7203)
@@ -16,12 +16,16 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
+import grok
 import shutil
 import tempfile
+from zope.event import notify
 from zope.catalog.interfaces import ICatalog
-from zope.component import queryUtility
+from zope.component import queryUtility, createObject
 from zope.component.hooks import setSite
 from waeup.sirp.app import University
 from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
 from waeup.sirp.students.student import Student
+from waeup.sirp.university.faculty import Faculty
+from waeup.sirp.university.department import Department
 
 class CatalogTestSetup(FunctionalTestCase):
@@ -43,10 +47,20 @@
         self.app = self.getRootFolder()['app']
         setSite(self.app)
+        self.certificate = createObject('waeup.Certificate')
+        self.certificate.code = u'CERT1'
+        self.app['faculties']['fac1'] = Faculty(code=u'fac1')
+        self.app['faculties']['fac1']['dep1'] = Department(code=u'dep1')
+        self.app['faculties']['fac1']['dep1'].certificates.addCertificate(
+            self.certificate)
 
-        # Create students
+        # Create student with studycourse subobject
         student = Student()
         student.fullname = u'Bob Tester'
-        student.student_id = u'A123456'
-        self.app['students'][student.student_id] = student
+        self.app['students'].addStudent(student)
+        self.student_id = student.student_id
+        self.student = self.app['students'][self.student_id]
+        self.student['studycourse'].certificate = self.certificate
+        # Update the catalog
+        notify(grok.ObjectModifiedEvent(self.student))
         return
 
@@ -68,8 +82,8 @@
         # We can find a certain student id
         cat = queryUtility(ICatalog, name='students_catalog')
-        results = cat.searchResults(student_id=('A123456', 'A123456'))
+        results = cat.searchResults(student_id=(self.student_id, self.student_id))
         results = [x for x in results] # Turn results generator into list
         assert len(results) == 1
-        assert results[0] is self.app['students']['A123456']
+        assert results[0] is self.app['students'][self.student_id]
 
     def test_search_by_name(self):
@@ -79,3 +93,19 @@
         results = [x for x in results] # Turn results generator into list
         assert len(results) == 1
-        assert results[0] is self.app['students']['A123456']
+        assert results[0] is self.app['students'][self.student_id]
+
+    def test_search_by_department(self):
+        # We can find a student studying in a certain department
+        cat = queryUtility(ICatalog, name='students_catalog')
+        results = cat.searchResults(depcode=('dep1','dep1'))
+        results = [x for x in results] # Turn results generator into list
+        assert len(results) == 1
+        assert results[0] is self.app['students'][self.student_id]
+
+    def test_search_by_faculty(self):
+        # We can find a student studying in a certain faculty
+        cat = queryUtility(ICatalog, name='students_catalog')
+        results = cat.searchResults(faccode=('fac1','fac1'))
+        results = [x for x in results] # Turn results generator into list
+        assert len(results) == 1
+        assert results[0] is self.app['students'][self.student_id]
