var angularGlobal = { 'typeOf':function(obj){ if (obj === _null) return $null; var type = typeof obj; if (type == $object) { if (obj instanceof Array) return $array; if (isDate(obj)) return $date; if (obj.nodeType == 1) return $element; } return type; } }; /** * @workInProgress * @ngdoc overview * @name angular.Object * @function * * @description * Utility functions for manipulation with JavaScript objects. * * These functions are exposed in two ways: * * - **in angular expressions**: the functions are bound to all objects and augment the Object * type. The names of these methods are prefixed with `$` character to minimize naming collisions. * To call a method, invoke the function without the first argument, e.g, `myObject.$foo(param2)`. * * - **in JavaScript code**: the functions don't augment the Object type and must be invoked as * functions of `angular.Object` as `angular.Object.foo(myObject, param2)`. * */ var angularCollection = { 'copy': copy, 'size': size, 'equals': equals }; var angularObject = { 'extend': extend }; /** * @workInProgress * @ngdoc overview * @name angular.Array * * @description * Utility functions for manipulation with JavaScript Array objects. * * These functions are exposed in two ways: * * - **in angular expressions**: the functions are bound to the Array objects and augment the Array * type as array methods. The names of these methods are prefixed with `$` character to minimize * naming collisions. To call a method, invoke `myArrayObject.$foo(params)`. * * - **in JavaScript code**: the functions don't augment the Array type and must be invoked as * functions of `angular.Array` as `angular.Array.foo(myArrayObject, params)`. * */ var angularArray = { /** * @workInProgress * @ngdoc function * @name angular.Array.indexOf * @function * * @description * Determines the index of `value` in `array`. * * Note: this function is used to augment the Array type in angular expressions. See * {@link angular.Array} for more info. * * @param {Array} array Array to search. * @param {*} value Value to search for. * @returns {number} The position of the element in `array`. The position is 0-based. `-1` is returned if the value can't be found. * * @example
| Qty | Description | Cost | Total | |
|---|---|---|---|---|
| {{item.qty * item.cost | currency}} | [X] | |||
| add item | Total: | {{invoice.items.$sum('qty*cost') | currency}} |
#!/usr/bin/env python """ Useful tool to run the test suite for rest_framework and generate a coverage report. """ # http://ericholscher.com/blog/2009/jun/29/enable-setuppy-test-your-django-apps/ # http://www.travisswicegood.com/2010/01/17/django-virtualenv-pip-and-fabric/ # http://code.djangoproject.com/svn/django/trunk/tests/runtests.py import os import sys os.environ['DJANGO_SETTINGS_MODULE'] = 'rest_framework.runtests.settings' from coverage import coverage def main(): """Run the tests for rest_framework and generate a coverage report.""" cov = coverage() cov.erase() cov.start() from django.conf import settings from django.test.utils import get_runner TestRunner = get_runner(settings) if hasattr(TestRunner, 'func_name'): # Pre 1.2 test runners were just functions, # and did not support the 'failfast' option. import warnings warnings.warn( 'Function-based test runners are deprecated. Test runners should be classes with a run_tests() method.', DeprecationWarning ) failures = TestRunner(['rest_framework']) else: test_runner = TestRunner() failures = test_runner.run_tests(['rest_framework']) cov.stop() # Discover the list of all modules that we should test coverage for import rest_framework project_dir = os.path.dirname(rest_framework.__file__) cov_files = [] for (path, dirs, files) in os.walk(project_dir): # Drop tests and runtests directories from the test coverage report if os.path.basename(path) == 'tests' or os.path.basename(path) == 'runtests': continue # Drop the compat module from coverage, since we're not interested in the coverage # of a module which is specifically for resolving environment dependant imports. # (Because we'll end up getting different coverage reports for it for each environment) if 'compat.py' in files: files.remove('compat.py') cov_files.extend([os.path.join(path, file) for file in files if file.endswith('.py')]) cov.report(cov_files) if '--html' in sys.argv: cov.html_report(cov_files, directory='coverage') sys.exit(failures) if __name__ == '__main__': main()