root / logic / tests.py @ 7d52c0b4
History | View | Annotate | Download (1.8 kB)
1 | 09c936a7 | Vassilios Karakoidas | #
|
---|---|---|---|
2 | 09c936a7 | Vassilios Karakoidas | # Unit Tests for logic
|
3 | 09c936a7 | Vassilios Karakoidas | #
|
4 | 09c936a7 | Vassilios Karakoidas | # Provides automated tests for logic module
|
5 | 09c936a7 | Vassilios Karakoidas | #
|
6 | 09c936a7 | Vassilios Karakoidas | # Copyright 2010 Greek Research and Technology Network
|
7 | 09c936a7 | Vassilios Karakoidas | #
|
8 | 92c53da1 | Vassilios Karakoidas | |
9 | 92c53da1 | Vassilios Karakoidas | from db.models import * |
10 | 92c53da1 | Vassilios Karakoidas | |
11 | 92c53da1 | Vassilios Karakoidas | from logic import credits |
12 | 92c53da1 | Vassilios Karakoidas | |
13 | 92c53da1 | Vassilios Karakoidas | from django.test import TestCase |
14 | 92c53da1 | Vassilios Karakoidas | |
15 | 92c53da1 | Vassilios Karakoidas | |
16 | 92c53da1 | Vassilios Karakoidas | class ChargeTestCase(TestCase): |
17 | 92c53da1 | Vassilios Karakoidas | fixtures = [ 'db_test_data' ]
|
18 | 92c53da1 | Vassilios Karakoidas | |
19 | 92c53da1 | Vassilios Karakoidas | def test_charge_method(self): |
20 | 92c53da1 | Vassilios Karakoidas | """Test VirtualMachine.charge() method"""
|
21 | 92c53da1 | Vassilios Karakoidas | |
22 | 92c53da1 | Vassilios Karakoidas | # Since we have tested the costs, with this test
|
23 | 92c53da1 | Vassilios Karakoidas | # we must ensure the following:
|
24 | 92c53da1 | Vassilios Karakoidas | # 1. The vm.charged is updated
|
25 | 92c53da1 | Vassilios Karakoidas | # 2. Users credits are decreased
|
26 | 92c53da1 | Vassilios Karakoidas | |
27 | 92c53da1 | Vassilios Karakoidas | vm_started = VirtualMachine.objects.get(pk=30000)
|
28 | 92c53da1 | Vassilios Karakoidas | |
29 | 92c53da1 | Vassilios Karakoidas | initial_date = vm_started.charged |
30 | 92c53da1 | Vassilios Karakoidas | initial_credits = vm_started.owner.credit |
31 | 92c53da1 | Vassilios Karakoidas | |
32 | 92c53da1 | Vassilios Karakoidas | credits.charge(vm_started) |
33 | 92c53da1 | Vassilios Karakoidas | |
34 | 92c53da1 | Vassilios Karakoidas | self.assertTrue(vm_started.charged > initial_date, 'Initial charged date should not be greater') |
35 | 92c53da1 | Vassilios Karakoidas | self.assertTrue(initial_credits > vm_started.owner.credit, 'The user should have less credits now! (%d>%d)' % (initial_credits, vm_started.owner.credit)) |
36 | 92c53da1 | Vassilios Karakoidas | |
37 | 92c53da1 | Vassilios Karakoidas | |
38 | 92c53da1 | Vassilios Karakoidas | class SynnefoUserTestCase(TestCase): |
39 | 92c53da1 | Vassilios Karakoidas | fixtures = [ 'db_test_data' ]
|
40 | 92c53da1 | Vassilios Karakoidas | |
41 | 92c53da1 | Vassilios Karakoidas | def test_synnefo_user(self): |
42 | 92c53da1 | Vassilios Karakoidas | """Test a SynnefoUser object"""
|
43 | 92c53da1 | Vassilios Karakoidas | s_user = SynnefoUser.objects.get(pk=30000)
|
44 | 92c53da1 | Vassilios Karakoidas | v_machine = VirtualMachine.objects.get(pk=30000)
|
45 | 92c53da1 | Vassilios Karakoidas | |
46 | 92c53da1 | Vassilios Karakoidas | # charge the user
|
47 | 92c53da1 | Vassilios Karakoidas | credits.debit_account(s_user, 10, v_machine, "This should be a structured debit message!") |
48 | 92c53da1 | Vassilios Karakoidas | |
49 | 92c53da1 | Vassilios Karakoidas | # should have only one debit object
|
50 | 92c53da1 | Vassilios Karakoidas | d_list = Debit.objects.all() |
51 | 92c53da1 | Vassilios Karakoidas | |
52 | 92c53da1 | Vassilios Karakoidas | self.assertEqual(len(d_list), 1, 'SynnefoUser.debit_account() writes more than one or zero (%d) debit entries!' % ( len(d_list), )) |
53 | 92c53da1 | Vassilios Karakoidas | |
54 | 92c53da1 | Vassilios Karakoidas | # retrieve the user, now he/she should have zero credits
|
55 | 92c53da1 | Vassilios Karakoidas | s_user = SynnefoUser.objects.get(pk=30000)
|
56 | 92c53da1 | Vassilios Karakoidas | |
57 | 92c53da1 | Vassilios Karakoidas | self.assertEqual(0, s_user.credit, 'SynnefoUser (pk=30000) should have zero credits (%d)' % ( s_user.credit, )) |