コード例 #1
0
    def test_get_fields(self):
        """
        Tests get_fields
        """

        wayne = self.setup_user()
        fields = get_fields(wayne)
        self.assertEqual(fields, ['first_name', 'home_city', 'profession'])
コード例 #2
0
    def test_get_fields(self):
        """
        Tests get_fields
        """

        wayne = self.setup_user()
        fields = get_fields(wayne)
        self.assertEqual(fields, ['first_name', 'home_city', 'profession'])
コード例 #3
0
def knockout_data(values, name=None):
    """

    """
    if not values:
        return ''

    field_names = get_fields(values[0])
    return koData(values, field_names, name)
コード例 #4
0
def knockout_model(values):
    """

    """
    if not values:
        return ''

    field_names = get_fields(values[0])
    modelClass = values[0].__class__
    return ko_model(modelClass, field_names)
コード例 #5
0
def knockout(values):
    """
    Knockoutify a QuerySet!
    """

    if not values:
        return ''

    field_names = get_fields(values[0])
    return ko(values, field_names)
コード例 #6
0
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)
コード例 #7
0
    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)
コード例 #8
0
    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)