def test_create_database_application(send_mock, data_fixture): user = data_fixture.create_user() user_2 = data_fixture.create_user() group = data_fixture.create_group(user=user) handler = CoreHandler() handler.create_application(user=user, group=group, type_name='database', name='Test database') assert Application.objects.all().count() == 1 assert Database.objects.all().count() == 1 database = Database.objects.all().first() assert database.name == 'Test database' assert database.order == 1 assert database.group == group send_mock.assert_called_once() assert send_mock.call_args[1]['application'].id == database.id assert send_mock.call_args[1]['user'].id == user.id assert send_mock.call_args[1]['type_name'] == 'database' with pytest.raises(UserNotInGroupError): handler.create_application(user=user_2, group=group, type_name='database', name='') with pytest.raises(ApplicationTypeDoesNotExist): handler.create_application(user=user, group=group, type_name='UNKNOWN', name='')
def test_create_database_application(send_mock, data_fixture): user = data_fixture.create_user() user_2 = data_fixture.create_user() group = data_fixture.create_group(user=user) handler = CoreHandler() handler.create_application(user=user, group=group, type_name="database", name="Test database") assert Application.objects.all().count() == 1 assert Database.objects.all().count() == 1 database = Database.objects.all().first() assert database.name == "Test database" assert database.order == 1 assert database.group == group send_mock.assert_called_once() assert send_mock.call_args[1]["application"].id == database.id assert send_mock.call_args[1]["user"].id == user.id assert send_mock.call_args[1]["type_name"] == "database" with pytest.raises(UserNotInGroup): handler.create_application(user=user_2, group=group, type_name="database", name="") with pytest.raises(ApplicationTypeDoesNotExist): handler.create_application(user=user, group=group, type_name="UNKNOWN", name="")
def test_create_database_application(data_fixture): user = data_fixture.create_user() user_2 = data_fixture.create_user() group = data_fixture.create_group(user=user) handler = CoreHandler() handler.create_application(user=user, group=group, type_name='database', name='Test database') assert Application.objects.all().count() == 1 assert Database.objects.all().count() == 1 database = Database.objects.all().first() assert database.name == 'Test database' assert database.order == 1 assert database.group == group with pytest.raises(UserNotInGroupError): handler.create_application(user=user_2, group=group, type_name='database', name='') with pytest.raises(ApplicationTypeDoesNotExist): handler.create_application(user=user, group=group, type_name='UNKNOWN', name='')
def user_created(self, user, group, group_invitation, template): """ This method is called when a new user is created. We are going to create a database, table, view, fields and some rows here as an example for the user. """ # If the user created an account in combination with a group invitation we # don't want to create the initial data in the group because data should # already exist. if group_invitation or template: return core_handler = CoreHandler() table_handler = TableHandler() view_handler = ViewHandler() field_handler = FieldHandler() database = core_handler.create_application( user, group, type_name=self.type, name=f"{user.first_name}'s company") # Creating the example customers table. table = table_handler.create_table(user, database, name="Customers") customers_view = view_handler.create_view(user, table, GridViewType.type, name="Grid") field_handler.create_field(user, table, TextFieldType.type, name="Last name") notes_field = field_handler.create_field(user, table, LongTextFieldType.type, name="Notes") active_field = field_handler.create_field(user, table, BooleanFieldType.type, name="Active") view_handler.update_grid_view_field_options( user, customers_view, { notes_field.id: { "width": 400 }, active_field.id: { "width": 100 } }, fields=[notes_field, active_field], ) model = table.get_model(attribute_names=True) model.objects.create(name="Elon", last_name="Musk", active=True, order=1) model.objects.create( name="Bill", last_name="Gates", notes= ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce " "dignissim, urna eget rutrum sollicitudin, sapien diam interdum nisi, " "quis malesuada nibh eros a est."), active=False, order=2, ) model.objects.create(name="Mark", last_name="Zuckerburg", active=True, order=3) model.objects.create(name="Jeffrey", last_name="Bezos", active=True, order=4) # Creating the example projects table. table_2 = table_handler.create_table(user, database, name="Projects") projects_view = view_handler.create_view(user, table_2, GridViewType.type, name="Grid") field_handler.create_field(user, table_2, DateFieldType.type, name="Started") active_field = field_handler.create_field(user, table_2, BooleanFieldType.type, name="Active") model = table_2.get_model(attribute_names=True) model.objects.create(name="Tesla", active=True, started=date(2020, 6, 1), order=1) model.objects.create(name="SpaceX", active=False, order=2) model.objects.create(name="Amazon", active=False, started=date(2018, 1, 1), order=3) view_handler.update_grid_view_field_options( user, projects_view, {active_field.id: { "width": 100 }}, fields=[active_field], )
def user_created(self, user, group): """ This method is called when a new user is created. We are going to create a database, table, view, fields and some rows here as an example for the user. :param user: The newly created user. :param group: The newly created group for the user. """ core_handler = CoreHandler() table_handler = TableHandler() view_handler = ViewHandler() field_handler = FieldHandler() database = core_handler.create_application( user, group, type_name=self.type, name=f"{user.first_name}'s company") # Creating the example customers table. table = table_handler.create_table(user, database, name='Customers') customers_view = view_handler.create_view(user, table, GridViewType.type, name='Grid') field_handler.create_field(user, table, TextFieldType.type, name='Last name') notes_field = field_handler.create_field(user, table, LongTextFieldType.type, name='Notes') active_field = field_handler.create_field(user, table, BooleanFieldType.type, name='Active') view_handler.update_grid_view_field_options( customers_view, { notes_field.id: { 'width': 400 }, active_field.id: { 'width': 100 } }, fields=[notes_field, active_field]) model = table.get_model(attribute_names=True) model.objects.create(name='Elon', last_name='Musk', active=True) model.objects.create( name='Bill', last_name='Gates', notes= ('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce ' 'dignissim, urna eget rutrum sollicitudin, sapien diam interdum nisi, ' 'quis malesuada nibh eros a est.'), active=False) model.objects.create(name='Mark', last_name='Zuckerburg', active=True) model.objects.create(name='Jeffrey', last_name='Bezos', active=True) # Creating the example projects table. table_2 = table_handler.create_table(user, database, name='Projects') projects_view = view_handler.create_view(user, table_2, GridViewType.type, name='Grid') field_handler.create_field(user, table_2, DateFieldType.type, name='Started') active_field = field_handler.create_field(user, table_2, BooleanFieldType.type, name='Active') model = table_2.get_model(attribute_names=True) model.objects.create(name='Tesla', active=True, started=date(2020, 6, 1)) model.objects.create(name='SpaceX', active=False) model.objects.create(name='Amazon', active=False, started=date(2018, 1, 1)) view_handler.update_grid_view_field_options( projects_view, {active_field.id: { 'width': 100 }}, fields=[active_field])