Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1#!/usr/bin/env python 

2 

3""" 

4camcops_server/cc_modules/tests/cc_taskcollection_tests.py 

5 

6=============================================================================== 

7 

8 Copyright (C) 2012-2020 Rudolf Cardinal (rudolf@pobox.com). 

9 

10 This file is part of CamCOPS. 

11 

12 CamCOPS is free software: you can redistribute it and/or modify 

13 it under the terms of the GNU General Public License as published by 

14 the Free Software Foundation, either version 3 of the License, or 

15 (at your option) any later version. 

16 

17 CamCOPS is distributed in the hope that it will be useful, 

18 but WITHOUT ANY WARRANTY; without even the implied warranty of 

19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

20 GNU General Public License for more details. 

21 

22 You should have received a copy of the GNU General Public License 

23 along with CamCOPS. If not, see <https://www.gnu.org/licenses/>. 

24 

25=============================================================================== 

26 

27""" 

28 

29from kombu.serialization import dumps, loads 

30from camcops_server.cc_modules.cc_taskcollection import ( 

31 TaskCollection, 

32 TaskSortMethod, 

33) 

34 

35from camcops_server.cc_modules.cc_taskfilter import TaskFilter 

36from camcops_server.cc_modules.cc_unittest import DemoDatabaseTestCase 

37 

38 

39# ============================================================================= 

40# Unit tests 

41# ============================================================================= 

42 

43class TaskCollectionTests(DemoDatabaseTestCase): 

44 def create_tasks(self) -> None: 

45 return 

46 

47 def test_it_can_be_serialized(self) -> None: 

48 taskfilter = TaskFilter() 

49 taskfilter.task_types = ['task1', 'task2', 'task3'] 

50 taskfilter.group_ids = [1, 2, 3] 

51 

52 coll = TaskCollection( 

53 self.req, 

54 taskfilter=taskfilter, 

55 as_dump=True, 

56 sort_method_by_class=TaskSortMethod.CREATION_DATE_ASC 

57 ) 

58 content_type, encoding, data = dumps(coll, serializer="json") 

59 new_coll = loads(data, content_type, encoding) 

60 

61 self.assertEqual(new_coll._as_dump, True) 

62 self.assertEqual(new_coll._sort_method_by_class, 

63 TaskSortMethod.CREATION_DATE_ASC) 

64 self.assertEqual(new_coll._filter.task_types, 

65 ['task1', 'task2', 'task3']) 

66 self.assertEqual(new_coll._filter.group_ids, 

67 [1, 2, 3])