~lutostag/ubuntu/utopic/maas/1.5.2

« back to all changes in this revision

Viewing changes to src/maasserver/tests/test_signals.py

  • Committer: Package Import Robot
  • Author(s): Andres Rodriguez, Dustin Kirkland, Andres Rodriguez
  • Date: 2014-01-31 09:38:51 UTC
  • mfrom: (1.2.21)
  • Revision ID: package-import@ubuntu.com-20140131093851-0jd8i9q57uxqxk3i
Tags: 1.5+bzr1909-0ubuntu1
* New upstream release.

[ Dustin Kirkland ]
* debian/maas-region-controller-min.postinst: Fix typo in sed. Remove
  double quotes. (LP: #1274448)

[ Andres Rodriguez ]
* debian/control: Add depends on python-crochet.
* Get rid of dfsg on the versioning as we no longer strip any code from
  the orig tarball.
  - debian/rules: Do not strip any files out of the tarball.
* debian/patches/*: Refreshed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright 2012, 2013 Canonical Ltd.  This software is licensed under the
 
1
# Copyright 2012-2014 Canonical Ltd.  This software is licensed under the
2
2
# GNU Affero General Public License version 3 (see the file LICENSE).
3
3
 
4
4
"""Tests for signals helpers."""
32
32
 
33
33
    def test_connect_to_field_change_calls_callback(self):
34
34
        callback = Mock()
35
 
        connect_to_field_change(callback, FieldChangeTestModel, 'name1')
 
35
        connect_to_field_change(callback, FieldChangeTestModel, ['name1'])
36
36
        old_name1_value = factory.getRandomString()
37
37
        obj = FieldChangeTestModel(name1=old_name1_value)
38
38
        obj.save()
39
39
        obj.name1 = factory.getRandomString()
40
40
        obj.save()
41
41
        self.assertEqual(
42
 
            (1, call(obj, old_name1_value, deleted=False)),
43
 
            (callback.call_count, callback.call_args))
 
42
            [call(obj, (old_name1_value,), deleted=False)],
 
43
            callback.mock_calls)
44
44
 
45
45
    def test_connect_to_field_change_calls_callback_for_each_save(self):
46
46
        callback = Mock()
47
 
        connect_to_field_change(callback, FieldChangeTestModel, 'name1')
 
47
        connect_to_field_change(callback, FieldChangeTestModel, ['name1'])
48
48
        old_name1_value = factory.getRandomString()
49
49
        obj = FieldChangeTestModel(name1=old_name1_value)
50
50
        obj.save()
56
56
 
57
57
    def test_connect_to_field_change_calls_callback_for_each_real_save(self):
58
58
        callback = Mock()
59
 
        connect_to_field_change(callback, FieldChangeTestModel, 'name1')
 
59
        connect_to_field_change(callback, FieldChangeTestModel, ['name1'])
60
60
        old_name1_value = factory.getRandomString()
61
61
        obj = FieldChangeTestModel(name1=old_name1_value)
62
62
        obj.save()
67
67
 
68
68
    def test_connect_to_field_change_calls_multiple_callbacks(self):
69
69
        callback1 = Mock()
70
 
        connect_to_field_change(callback1, FieldChangeTestModel, 'name1')
 
70
        connect_to_field_change(callback1, FieldChangeTestModel, ['name1'])
71
71
        callback2 = Mock()
72
 
        connect_to_field_change(callback2, FieldChangeTestModel, 'name1')
 
72
        connect_to_field_change(callback2, FieldChangeTestModel, ['name1'])
73
73
        old_name1_value = factory.getRandomString()
74
74
        obj = FieldChangeTestModel(name1=old_name1_value)
75
75
        obj.save()
81
81
        obj = FieldChangeTestModel(name2=factory.getRandomString())
82
82
        obj.save()
83
83
        callback = Mock()
84
 
        connect_to_field_change(callback, FieldChangeTestModel, 'name1')
 
84
        connect_to_field_change(callback, FieldChangeTestModel, ['name1'])
85
85
        obj.name2 = factory.getRandomString()
86
86
        obj.save()
87
87
        self.assertEqual(0, callback.call_count)
88
88
 
89
89
    def test_connect_to_field_change_ignores_object_creation(self):
90
90
        callback = Mock()
91
 
        connect_to_field_change(callback, FieldChangeTestModel, 'name1')
 
91
        connect_to_field_change(callback, FieldChangeTestModel, ['name1'])
92
92
        obj = FieldChangeTestModel(name1=factory.getRandomString())
93
93
        obj.save()
94
94
        self.assertEqual(0, callback.call_count)
97
97
        obj = FieldChangeTestModel(name2=factory.getRandomString())
98
98
        obj.save()
99
99
        callback = Mock()
100
 
        connect_to_field_change(callback, FieldChangeTestModel, 'name1')
 
100
        connect_to_field_change(callback, FieldChangeTestModel, ['name1'])
101
101
        obj.delete()
102
102
        self.assertEqual(0, callback.call_count)
103
103
 
107
107
        obj.save()
108
108
        callback = Mock()
109
109
        connect_to_field_change(
110
 
            callback, FieldChangeTestModel, 'name1', delete=True)
 
110
            callback, FieldChangeTestModel, ['name1'], delete=True)
111
111
        obj.delete()
112
112
        self.assertEqual(
113
 
            (1, call(obj, old_name1_value, deleted=True)),
114
 
            (callback.call_count, callback.call_args))
 
113
            [call(obj, (old_name1_value,), deleted=True)],
 
114
            callback.mock_calls)
 
115
 
 
116
    def test_connect_to_field_change_notices_change_in_any_given_field(self):
 
117
        callback = Mock()
 
118
        connect_to_field_change(
 
119
            callback, FieldChangeTestModel, ['name1', 'name2'])
 
120
        name1 = factory.make_name('name1')
 
121
        old_name2_value = factory.make_name('old')
 
122
        obj = FieldChangeTestModel(name1=name1, name2=old_name2_value)
 
123
        obj.save()
 
124
        obj.name2 = factory.make_name('new')
 
125
        obj.save()
 
126
        self.assertEqual(
 
127
            [call(obj, (name1, old_name2_value), deleted=False)],
 
128
            callback.mock_calls)
 
129
 
 
130
    def test_connect_to_field_change_only_calls_once_per_object_change(self):
 
131
        callback = Mock()
 
132
        connect_to_field_change(
 
133
            callback, FieldChangeTestModel, ['name1', 'name2'])
 
134
        old_name1_value = factory.make_name('old1')
 
135
        old_name2_value = factory.make_name('old2')
 
136
        obj = FieldChangeTestModel(
 
137
            name1=old_name1_value, name2=old_name2_value)
 
138
        obj.save()
 
139
        obj.name1 = factory.make_name('new1')
 
140
        obj.name2 = factory.make_name('new2')
 
141
        obj.save()
 
142
        self.assertEqual(
 
143
            [call(obj, (old_name1_value, old_name2_value), deleted=False)],
 
144
            callback.mock_calls)