User Tools

Site Tools


devel:hacking

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
devel:hacking [2012/05/07 11:18]
morten hudson-jenkins
devel:hacking [2012/09/18 08:25]
bredal [Python boilerplate headers]
Line 66: Line 66:
 long-term goal to rewrite the remaining Java backend code to Python. long-term goal to rewrite the remaining Java backend code to Python.
  
-Currently (as of February 2011), NAV consists mostly of Python code, +Currently (as of September 2012), NAV consists mostly of Python code, 
-with a few remaining backend systems written in Java (there'​s also the +with one remaining backend systems written in Java (eventEngine).
-Netmap Java Applet).+
  
   * We will only accept new code written in Python (except when it   * We will only accept new code written in Python (except when it
Line 125: Line 124:
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
 </​code>​ </​code>​
 +
 +===== Headline =====
  
 ====== Database ====== ====== Database ======
Line 352: Line 353:
 </​code>​ </​code>​
  
 +
 +===== Javascript testing =====
 +
 +Testing of javascript is in its infancy in NAV. We are currently using [[http://​busterjs.org/​|buster.js]] as testing toolkit.
 +
 +To install buster.js install [[http://​nodejs.org/​|node]] and then:
 +<​code>​
 +npm install -g buster
 +</​code>​
 +
 +As we use [[http://​requirejs.org/​|require.js]] you need the AMD module of buster aswell. Install it in the /media/js directory:
 +<​code>​
 +npm install buster-amd
 +</​code>​
 +
 +To run the tests you need to
 +  - Start a buster server by typing ''​buster-server''​
 +  - Capture browsers by pointing browsers to the buster-server (default localhost:​1111)
 +  - Go to /media/js
 +  - Run the tests by typing ''​buster-test''​
 +
 +All tests are located under ''​media/​js/​tests/''​. Create new tests there. For syntax, assertions and related stuff take a look at the tests already there and [[http://​busterjs.org/​docs/​|the buster docs]].
 ===== Jenkins ===== ===== Jenkins =====
  
Line 360: Line 383:
  
 Our Jenkins installation is available on http://​nav.uninett.no/​jenkins . Our Jenkins installation is available on http://​nav.uninett.no/​jenkins .
 +
 +===== Tips and tricks =====
 +
 +===== Make fixtures for integration testing =====
 +
 +<​code>​
 +from django.core import serializers
 +from nav.models.manage import Netbox
 +
 +fixtures = serializers.serialize("​xml",​ Netbox.objects.all()[:​2])
 +</​code>​
 +
 +Fixtures can so be used in your integration tests by extending
 +the test case DjangoTransactionTestCase in nav.tests.cases
 +
 +See nav.tests.integration.l2trace_test for an example on applying
 +fixtures for your particular test case. 
 +
 +Also keep in mind you have to make sure you have the model
 +dependency in correct order when importing.
 +Example: Netbox contains a location to a Room where it is located,
 +you have to make sure Room's are imported first before importing
 +Netbox'​s
 +
 +See https://​docs.djangoproject.com/​en/​dev/​topics/​serialization/​
 +
 +TODO: Be able to use [[https://​docs.djangoproject.com/​en/​dev/​ref/​django-admin/#​dumpdata-appname-appname-appname-model|django-admin'​s management command: dumpdata]]
 +to create fixtures. ​
 +
  
  
Line 384: Line 436:
     addressed to the //nav-dev// mailing list.  Please **do not     addressed to the //nav-dev// mailing list.  Please **do not
     patchbomb** the mailing list with multiple emails.     patchbomb** the mailing list with multiple emails.
- 
devel/hacking.txt · Last modified: 2014/11/05 10:57 by morten