~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/registry/browser/tests/test_distroseries.py

Merged rocketfuel into trivial.

Show diffs side-by-side

added added

removed removed

Lines of Context:
88
88
        }))
89
89
 
90
90
 
 
91
def set_derived_series_sync_feature_flag(test_case):
 
92
    test_case.useFixture(FeatureFixture({
 
93
        u'soyuz.derived_series_sync.enabled': u'on',
 
94
        u'soyuz.derived-series-ui.enabled': u'on',
 
95
        }))
 
96
 
 
97
 
91
98
class TestDistroSeriesView(TestCaseWithFactory):
92
99
    """Test the distroseries +index view."""
93
100
 
1054
1061
        # synced package.
1055
1062
        derived_series = self._setUpDSD()[0]
1056
1063
        person = self._setUpPersonWithPerm(derived_series)
 
1064
        set_derived_series_sync_feature_flag(self)
1057
1065
        with person_logged_in(person):
1058
1066
            view = create_initialized_view(
1059
1067
                derived_series, '+localpackagediffs')
1060
1068
 
1061
1069
            self.assertTrue(view.canPerformSync())
1062
1070
 
 
1071
    def test_canPerformSync_non_anon_feature_disabled(self):
 
1072
        # Logged-in users with a permission on the destination archive
 
1073
        # are not presented with options to perform syncs when the
 
1074
        # feature flag is not enabled.
 
1075
        self.assertIs(
 
1076
            None, getFeatureFlag('soyuz.derived_series_sync.enabled'))
 
1077
        derived_series = self._setUpDSD()[0]
 
1078
        person = self._setUpPersonWithPerm(derived_series)
 
1079
        with person_logged_in(person):
 
1080
            view = create_initialized_view(
 
1081
                derived_series, '+localpackagediffs')
 
1082
 
 
1083
            self.assertFalse(view.canPerformSync())
 
1084
 
1063
1085
    def _syncAndGetView(self, derived_series, person, sync_differences,
1064
1086
                        difference_type=None, view_name='+localpackagediffs'):
1065
1087
        # A helper to get the POST'ed sync view.
1076
1098
        # An error is raised when a sync is requested without any selection.
1077
1099
        derived_series = self._setUpDSD()[0]
1078
1100
        person = self._setUpPersonWithPerm(derived_series)
 
1101
        set_derived_series_sync_feature_flag(self)
1079
1102
        view = self._syncAndGetView(derived_series, person, [])
1080
1103
 
1081
1104
        self.assertEqual(1, len(view.errors))
1086
1109
        # An error is raised when an invalid difference is selected.
1087
1110
        derived_series = self._setUpDSD('my-src-name')[0]
1088
1111
        person = self._setUpPersonWithPerm(derived_series)
 
1112
        set_derived_series_sync_feature_flag(self)
1089
1113
        view = self._syncAndGetView(
1090
1114
            derived_series, person, ['some-other-name'])
1091
1115
 
1100
1124
        # sync packages.
1101
1125
        derived_series = self._setUpDSD('my-src-name')[0]
1102
1126
        person = self._setUpPersonWithPerm(derived_series)
 
1127
        set_derived_series_sync_feature_flag(self)
1103
1128
        view = self._syncAndGetView(
1104
1129
            derived_series, person, ['my-src-name'])
1105
1130
 
1137
1162
            'my-src-name')
1138
1163
        person, another_component = self.makePersonWithComponentPermission(
1139
1164
            derived_series.main_archive)
 
1165
        set_derived_series_sync_feature_flag(self)
1140
1166
        view = self._syncAndGetView(
1141
1167
            derived_series, person, ['my-src-name'])
1142
1168
 
1193
1219
        self.assertIs(None, pubs)
1194
1220
 
1195
1221
        # Now, sync the source from the parent using the form.
 
1222
        set_derived_series_sync_feature_flag(self)
1196
1223
        view = self._syncAndGetView(
1197
1224
            derived_series, person, ['my-src-name'])
1198
1225
 
1213
1240
            'my-src-name', difference_type=missing, versions=versions)
1214
1241
        person, another_component = self.makePersonWithComponentPermission(
1215
1242
            derived_series.main_archive)
 
1243
        set_derived_series_sync_feature_flag(self)
1216
1244
        view = self._syncAndGetView(
1217
1245
            derived_series, person, ['my-src-name'],
1218
1246
            view_name='+missingpackages')
1234
1262
        derived_series, parent_series, sourcepackagename = self._setUpDSD(
1235
1263
            'my-src-name', distribution=ubuntu, versions=versions)
1236
1264
        ubuntu_security = getUtility(IPersonSet).getByName('ubuntu-security')
 
1265
        set_derived_series_sync_feature_flag(self)
1237
1266
        with person_logged_in(ubuntu_security):
1238
1267
            self.assertTrue(
1239
1268
                check_permission(