def test_get_fields(self): """ Tests get_fields """ wayne = self.setup_user() fields = get_fields(wayne) self.assertEqual(fields, ['first_name', 'home_city', 'profession'])
def knockout_data(values, name=None): """ """ if not values: return '' field_names = get_fields(values[0]) return koData(values, field_names, name)
def knockout_model(values): """ """ if not values: return '' field_names = get_fields(values[0]) modelClass = values[0].__class__ return ko_model(modelClass, field_names)
def knockout(values): """ Knockoutify a QuerySet! """ if not values: return '' field_names = get_fields(values[0]) return ko(values, field_names)
def knockout_data(values, args=None): """ """ if not values: return '' name = None safe = False if args: arg_list = [arg.strip() for arg in args.split(',')] if len(arg_list) > 1: safe = True else: safe = False name = arg_list[0] field_names = get_fields(values[0]) return ko_data(values, field_names, name, safe)
def test_get_object_data(self): """ Tests get_object_data """ # Test a regular model wayne = self.setup_user() fields = get_fields(wayne) expected = { 'first_name': 'Lil', 'home_city': {'name': 'New Orleans'}, 'profession': {'skill': 999, u'id': 1, 'title': 'Rapper'}, } actual = get_object_data(wayne, fields, safe=False) self.assertEqual(actual, expected) # Test a model with a dict wayne = self.setup_user() expected = { 'first_name': 'Lil', 'home_city': {'name': 'New Orleans'}, 'home_city_dict': {'name': 'New Orleans'}, 'profession': {'skill': 999, u'id': 2, 'title': 'Rapper'}, 'profession_dict': {'skill': 999, u'id': 2, 'title': 'Rapper'}, } wayne.home_city_dict = expected['home_city'] wayne.profession_dict = expected['profession'] new_fields = ['home_city_dict', 'profession_dict'] actual = get_object_data(wayne, fields + new_fields, safe=False) self.assertEqual(actual, expected) # Test a model with a list of dicts wayne = self.setup_user() expected = { 'first_name': 'Lil', 'home_city': {'name': 'New Orleans'}, 'profession': {'skill': 999, u'id': 3, 'title': 'Rapper'}, 'list_of_dicts': [ {'name': 'New Orleans'}, {'skill': 999, u'id': 3, 'title': 'Rapper'}, ], } wayne.list_of_dicts = [expected['home_city'], expected['profession']] new_fields = ['list_of_dicts'] actual = get_object_data(wayne, fields + new_fields, safe=False) self.assertEqual(actual, expected) # Test a model with a list of models wayne = self.setup_user() expected = { 'first_name': 'Lil', 'home_city': {'name': 'New Orleans'}, 'profession': {'skill': 999, u'id': 4, 'title': 'Rapper'}, 'list_of_models': [{ 'first_name': 'Lil', 'home_city': {'name': 'New Orleans'}, 'profession': {'skill': 999, u'id': 5, 'title': 'Rapper'}, }], } wayne.list_of_models = [self.setup_user()] new_fields = ['list_of_models'] actual = get_object_data(wayne, fields + new_fields, safe=False) self.assertEqual(actual, expected) # Test with safe=True and some existing and non-existing fields wayne = self.setup_user() fields = ['first_name', 'home_city', 'non-existent'] expected = { 'first_name': 'Lil', 'home_city': {'name': 'New Orleans'}, } actual = get_object_data(wayne, fields, safe=True) self.assertEqual(actual, expected)
def test_get_object_data(self): """ Tests get_object_data """ # Test a regular model wayne = self.setup_user() fields = get_fields(wayne) expected = { 'first_name': 'Lil', 'home_city': { 'name': 'New Orleans' }, 'profession': { 'skill': 999, 'id': 1, 'title': 'Rapper' }, } actual = get_object_data(wayne, fields, safe=False) self.assertEqual(actual, expected) # Test a model with a dict wayne = self.setup_user() expected = { 'first_name': 'Lil', 'home_city': { 'name': 'New Orleans' }, 'home_city_dict': { 'name': 'New Orleans' }, 'profession': { 'skill': 999, 'id': 2, 'title': 'Rapper' }, 'profession_dict': { 'skill': 999, 'id': 2, 'title': 'Rapper' }, } wayne.home_city_dict = expected['home_city'] wayne.profession_dict = expected['profession'] new_fields = ['home_city_dict', 'profession_dict'] actual = get_object_data(wayne, fields + new_fields, safe=False) self.assertEqual(actual, expected) # Test a model with a list of dicts wayne = self.setup_user() expected = { 'first_name': 'Lil', 'home_city': { 'name': 'New Orleans' }, 'profession': { 'skill': 999, 'id': 3, 'title': 'Rapper' }, 'list_of_dicts': [ { 'name': 'New Orleans' }, { 'skill': 999, 'id': 3, 'title': 'Rapper' }, ], } wayne.list_of_dicts = [expected['home_city'], expected['profession']] new_fields = ['list_of_dicts'] actual = get_object_data(wayne, fields + new_fields, safe=False) self.assertEqual(actual, expected) # Test a model with a list of models wayne = self.setup_user() expected = { 'first_name': 'Lil', 'home_city': { 'name': 'New Orleans' }, 'profession': { 'skill': 999, 'id': 4, 'title': 'Rapper' }, 'list_of_models': [{ 'first_name': 'Lil', 'home_city': { 'name': 'New Orleans' }, 'profession': { 'skill': 999, 'id': 5, 'title': 'Rapper' }, }], } wayne.list_of_models = [self.setup_user()] new_fields = ['list_of_models'] actual = get_object_data(wayne, fields + new_fields, safe=False) self.assertEqual(actual, expected) # Test with safe=True and some existing and non-existing fields wayne = self.setup_user() fields = ['first_name', 'home_city', 'non-existent'] expected = { 'first_name': 'Lil', 'home_city': { 'name': 'New Orleans' }, } actual = get_object_data(wayne, fields, safe=True) self.assertEqual(actual, expected)