Пример #1
0
    def test_non_product_group_cant_have_upgrade_groups(self):
        from pyramid_bimt.tests.test_group_model import _make_group
        self.request.context = _make_group(name='test', product_id=None)
        view = self.view(self.request)

        self.assertIn(self.request.context, Group.get_all().all())
        self.assertIsNone(view.schema.get('upgrade_groups'))
Пример #2
0
    def __init__(self, request):
        chosen_assets.need()

        self.request = request
        self.schema = SQLAlchemySchemaNode(Mailing, includes=self.fields)

        # we don't like the way ColanderAlchemy renders SA Relationships so
        # we manually inject a suitable SchemaNode for groups
        choices = [(group.id, group.name) for group in Group.get_all()]
        self.schema.add_before(
            'trigger',
            node=colander.SchemaNode(
                colander.Set(),
                name='groups',
                missing=[],
                widget=deform.widget.CheckboxChoiceWidget(values=choices),
            ),
        )
        self.schema.add_before(
            'trigger',
            node=colander.SchemaNode(
                colander.Set(),
                name='exclude_groups',
                missing=[],
                widget=deform.widget.CheckboxChoiceWidget(values=choices),
            ),
        )
Пример #3
0
    def __init__(self, request):
        self.request = request
        self.schema = SQLAlchemySchemaNode(
            User,
            includes=self.fields,
            overrides={
                'properties': {'includes': ['key', 'value']},
                'email': {'validator': deferred_user_email_validator},
                'billing_email': {
                    'validator': deferred_user_billing_email_validator}
            }
        )

        # we don't like the way ColanderAlchemy renders SA Relationships so
        # we manually inject a suitable SchemaNode for groups
        choices = [(group.id, group.name) for group in Group.get_all()]
        enabled = Group.by_name('enabled')
        choices.remove((enabled.id, enabled.name))
        if not request.user.admin:
            admins = Group.by_name('admins')
            choices.remove((admins.id, admins.name))
        self.schema.add(
            node=colander.SchemaNode(
                colander.Set(),
                name='groups',
                missing=[],
                widget=deform.widget.CheckboxChoiceWidget(values=choices),
                validator=deferred_groups_validator,
            ),
        )
Пример #4
0
    def test_group_cant_be_upgrade_group_to_itself(self):
        from pyramid_bimt.tests.test_group_model import _make_group
        self.request.context = _make_group(name='test1', product_id=1)
        view = self.view(self.request)

        self.assertIn(self.request.context, Group.get_all().all())
        self.assertNotIn((str(
            (self.request.context.id)), self.request.context.name),
                         view.schema.get('upgrade_groups').widget.values)
Пример #5
0
 def test_override_ordered_by(self):
     _make_group(name='foo')
     _make_group(name='bar')
     _make_group(name='baz')
     groups = Group.get_all(order_by='id').all()
     self.assertEqual(len(groups), 3)
     self.assertEqual(groups[0].name, 'foo')
     self.assertEqual(groups[1].name, 'bar')
     self.assertEqual(groups[2].name, 'baz')
Пример #6
0
 def test_ordered_by_name_by_default(self):
     _make_group(name='foo')
     _make_group(name='bar')
     _make_group(name='baz')
     groups = Group.get_all().all()
     self.assertEqual(len(groups), 3)
     self.assertEqual(groups[0].name, 'bar')
     self.assertEqual(groups[1].name, 'baz')
     self.assertEqual(groups[2].name, 'foo')
Пример #7
0
    def __init__(self, request):
        self.request = request
        self.schema = SQLAlchemySchemaNode(
            Group,
            includes=self.fields,
            overrides={
                'properties': {
                    'includes': ['key', 'value']
                },
                'name': {
                    'validator': deferred_group_name_validator
                },
                'product_id': {
                    'validator': deferred_group_product_id_validator
                }  # noqa
            })
        # we don't like the way ColanderAlchemy renders SA Relationships so
        # we manually inject a suitable SchemaNode for users
        choices = [(user.id, user.email) for user in User.get_all()]
        self.schema.add(node=colander.SchemaNode(
            colander.Set(),
            name='users',
            missing=[],
            widget=deform.widget.CheckboxChoiceWidget(values=choices,
                                                      inline=True),
        ), )

        choices = [
            (group.id, group.name)
            for group in Group.get_all().filter(Group.product_id != None)
        ]  # noqa
        self.schema.add(node=colander.SchemaNode(
            colander.Set(),
            name='upgrade_groups',
            missing=[],
            widget=deform.widget.CheckboxChoiceWidget(values=choices,
                                                      inline=True),
        ), )
Пример #8
0
 def list(self):
     self.request.layout_manager.layout.hide_sidebar = True
     self.request.layout_manager.layout.title = u'Groups'
     return {
         'groups': Group.get_all().all(),
     }
Пример #9
0
 def test_limit(self):
     _make_group(name='foo')
     _make_group(name='bar')
     groups = Group.get_all(limit=1).all()
     self.assertEqual(len(groups), 1)
     self.assertEqual(groups[0].name, 'bar')
Пример #10
0
 def test_filter_by(self):
     _make_group(name='foo')
     _make_group(name='bar')
     groups = Group.get_all(filter_by={'name': 'foo'}).all()
     self.assertEqual(len(groups), 1)
     self.assertEqual(groups[0].name, 'foo')
Пример #11
0
 def test_all_groups(self):
     _make_group(name='foo')
     _make_group(name='bar')
     _make_group(name='baz')
     groups = Group.get_all().all()
     self.assertEqual(len(groups), 3)
Пример #12
0
 def test_no_groups(self):
     groups = Group.get_all().all()
     self.assertEqual(len(groups), 0)