示例#1
0
    def test_get_createdate_filter(self):
        rule = RuleFactory.create(
            **{'min_date': datetime.datetime(2007, 12, 5, 12, 00)}
        )
        self.assertEqual(
            '<li>the contribution has been created after '
            'Dec 05 2007 12:00</li>',
            get_createdate_filter(rule)
        )

        rule = RuleFactory.create(
            **{'max_date': datetime.datetime(2012, 12, 5, 15, 00)}
        )
        self.assertEqual(
            '<li>the contribution has been created before '
            'Dec 05 2012 15:00</li>',
            get_createdate_filter(rule)
        )

        rule = RuleFactory.create(**{
            'min_date': datetime.datetime(2007, 12, 5, 12, 00),
            'max_date': datetime.datetime(2012, 12, 5, 15, 00)
        })
        self.assertEqual(
            '<li>the contribution has been created after '
            'Dec 05 2007 12:00 and before Dec 05 2012 15:00</li>',
            get_createdate_filter(rule)
        )
示例#2
0
    def setUp(self):
        self.factory = APIRequestFactory()
        self.admin = UserF.create()
        self.creator = UserF.create()
        self.viewer = UserF.create()
        self.project = ProjectF(add_admins=[self.admin],
                                add_contributors=[self.creator])

        self.contribution = ObservationFactory.create(**{
            'project': self.project,
            'creator': self.creator
        })

        self.viewer = UserF.create()
        self.grouping = GroupingFactory.create(add_viewers=[self.viewer],
                                               **{'project': self.project})
        RuleFactory.create(**{
            'grouping': self.grouping,
            'category': self.contribution.category
        })

        self.image_file = ImageFileFactory.create(**{
            'contribution': self.contribution,
            'creator': self.creator
        })
示例#3
0
    def setUp(self):
        self.factory = APIRequestFactory()
        self.admin = UserF.create()
        self.creator = UserF.create()
        self.viewer = UserF.create()
        self.project = ProjectF(
            add_admins=[self.admin],
            add_contributors=[self.creator]
        )

        self.contribution = ObservationFactory.create(
            **{'project': self.project, 'creator': self.creator}
        )

        self.viewer = UserF.create()
        self.grouping = GroupingFactory.create(
            add_viewers=[self.viewer],
            **{'project': self.project}
        )
        RuleFactory.create(**{
            'grouping': self.grouping,
            'category': self.contribution.category
        })

        self.image_file = ImageFileFactory.create(
            **{'contribution': self.contribution, 'creator': self.creator}
        )
示例#4
0
 def test_delete_image_with_viewer(self):
     viewer = UserF.create()
     dataview = GroupingFactory.create(add_viewers=[viewer],
                                       **{'project': self.project})
     RuleFactory.create(**{
         'grouping': dataview,
         'category': self.contribution.category
     })
     response = self.delete(viewer)
     self.assertEqual(response.status_code, 404)
示例#5
0
 def test_delete_image_with_viewer(self):
     viewer = UserF.create()
     dataview = GroupingFactory.create(
         add_viewers=[viewer],
         **{'project': self.project}
     )
     RuleFactory.create(**{
         'grouping': dataview,
         'category': self.contribution.category
     })
     response = self.delete(viewer)
     self.assertEqual(response.status_code, 404)
示例#6
0
    def test_post_images_with_anonymous_to_public(self):
        self.project.isprivate = False
        self.project.everyone_contributes = 'true'
        self.project.save()

        grouping = GroupingFactory.create(
            **{'project': self.project, 'isprivate': False}
        )
        RuleFactory.create(**{
            'grouping': grouping,
            'category': self.contribution.category
        })
        response = self.post(AnonymousUser())
        self.assertEqual(response.status_code, 201)
示例#7
0
    def test_post_images_with_anonymous_to_public(self):
        self.project.isprivate = False
        self.project.everyone_contributes = 'true'
        self.project.save()

        grouping = GroupingFactory.create(**{
            'project': self.project,
            'isprivate': False
        })
        RuleFactory.create(**{
            'grouping': grouping,
            'category': self.contribution.category
        })
        response = self.post(AnonymousUser())
        self.assertEqual(response.status_code, 201)
示例#8
0
    def test_filters(self):
        category = CategoryFactory.create()
        TextFieldFactory.create(**{'category': category, 'key': 'text'})
        NumericFieldFactory.create(**{'category': category, 'key': 'number'})
        DateFieldFactory.create(**{'category': category, 'key': 'date'})
        DateTimeFieldFactory.create(
            **{'category': category, 'key': 'datetime'})
        TimeFieldFactory.create(**{'category': category, 'key': 'time'})
        lookup = LookupFieldFactory.create(
            **{'category': category, 'key': 'lookup'})
        val_1 = LookupValueFactory.create(**{'field': lookup})
        multiple = MultipleLookupFieldFactory.create(
            **{'category': category, 'key': 'multiple'})
        mul_1 = MultipleLookupValueFactory.create(**{'field': multiple})

        rule = RuleFactory.create(**{
            'category': category,
            'min_date': datetime.datetime(2007, 12, 5, 12, 00),
            'max_date': datetime.datetime(2012, 12, 5, 15, 00),
            'constraints': {
                'text': 'blah',
                'number': {'minval': 0, 'maxval': 10},
                'date': {'minval': 0, 'maxval': 10},
                'datetime': {'minval': 0, 'maxval': 10},
                'time': {'minval': 0, 'maxval': 10},
                'lookup': [val_1.id],
                'multiple': [mul_1.id]
            }
        })

        result = filters(rule)
        self.assertEqual(result.count('<li>'), 8)
示例#9
0
    def test_get_createdate_filter(self):
        rule = RuleFactory.create(
            **{'min_date': datetime.datetime(2007, 12, 5, 12, 00)})
        self.assertEqual(
            '<li>the contribution has been created after '
            'Dec 05 2007 12:00</li>', get_createdate_filter(rule))

        rule = RuleFactory.create(
            **{'max_date': datetime.datetime(2012, 12, 5, 15, 00)})
        self.assertEqual(
            '<li>the contribution has been created before '
            'Dec 05 2012 15:00</li>', get_createdate_filter(rule))

        rule = RuleFactory.create(
            **{
                'min_date': datetime.datetime(2007, 12, 5, 12, 00),
                'max_date': datetime.datetime(2012, 12, 5, 15, 00)
            })
        self.assertEqual(
            '<li>the contribution has been created after '
            'Dec 05 2007 12:00 and before Dec 05 2012 15:00</li>',
            get_createdate_filter(rule))
示例#10
0
    def test_delete_with_grouping(self):
        category = CategoryFactory.create()

        grouping = GroupingFactory.create()
        rule = RuleFactory(**{
            'grouping': grouping,
            'status': 'active',
            'category': category
        })
        category.delete()

        Category.objects.get(pk=category.id)
        Rule.objects.get(pk=rule.id)
示例#11
0
    def test_filters(self):
        category = CategoryFactory.create()
        TextFieldFactory.create(**{'category': category, 'key': 'text'})
        NumericFieldFactory.create(**{'category': category, 'key': 'number'})
        DateFieldFactory.create(**{'category': category, 'key': 'date'})
        DateTimeFieldFactory.create(**{
            'category': category,
            'key': 'datetime'
        })
        TimeFieldFactory.create(**{'category': category, 'key': 'time'})
        lookup = LookupFieldFactory.create(**{
            'category': category,
            'key': 'lookup'
        })
        val_1 = LookupValueFactory.create(**{'field': lookup})
        multiple = MultipleLookupFieldFactory.create(**{
            'category': category,
            'key': 'multiple'
        })
        mul_1 = MultipleLookupValueFactory.create(**{'field': multiple})

        rule = RuleFactory.create(
            **{
                'category': category,
                'min_date': datetime.datetime(2007, 12, 5, 12, 00),
                'max_date': datetime.datetime(2012, 12, 5, 15, 00),
                'constraints': {
                    'text': 'blah',
                    'number': {
                        'minval': 0,
                        'maxval': 10
                    },
                    'date': {
                        'minval': 0,
                        'maxval': 10
                    },
                    'datetime': {
                        'minval': 0,
                        'maxval': 10
                    },
                    'time': {
                        'minval': 0,
                        'maxval': 10
                    },
                    'lookup': [val_1.id],
                    'multiple': [mul_1.id]
                }
            })

        result = filters(rule)
        self.assertEqual(result.count('<li>'), 8)
示例#12
0
 def test_delete_with_rule_without_constraints(self):
     category = CategoryFactory()
     Field.create('n', 'n', 'n', False, category, 'TextField')
     field = Field.create('name', 'key', 'description', False, category,
                          'TextField')
     grouping = GroupingFactory.create()
     rule = RuleFactory(
         **{
             'grouping': grouping,
             'status': 'active',
             'category': category,
             'constraints': None
         })
     field.delete()
示例#13
0
 def test_delete_with_rule(self):
     category = CategoryFactory()
     Field.create('n', 'n', 'n', False, category, 'TextField')
     field = Field.create('name', 'key', 'description', False, category,
                          'TextField')
     grouping = GroupingFactory.create()
     rule = RuleFactory(
         **{
             'grouping': grouping,
             'status': 'active',
             'category': category,
             'constraints': {
                 field.key: 'Blah',
                 'other-key': 'blubb'
             }
         })
     field.delete()
     reference_rule = Rule.objects.get(pk=rule.id)
     self.assertEquals(reference_rule.constraints.get('key'), None)