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'))
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), ), )
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, ), )
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)
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')
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')
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), ), )
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(), }
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')
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')
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)
def test_no_groups(self): groups = Group.get_all().all() self.assertEqual(len(groups), 0)