Skip to content

Commit

Permalink
Add test for merging repofolder into another one.
Browse files Browse the repository at this point in the history
  • Loading branch information
Niklaus Johner committed Jan 4, 2021
1 parent f1a969b commit 96fb28b
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 0 deletions.
Binary file not shown.
98 changes: 98 additions & 0 deletions opengever/bundle/tests/test_os_migration.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ def test_repository_excel_analyser_os_test_branch_and_leaf_creation(self):
self.assertDictEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(1, u"F\xfchrung und Koordination", ""),
'new_number': None,
'new_parent_position': None,
Expand All @@ -147,6 +148,7 @@ def test_repository_excel_analyser_os_test_branch_and_leaf_creation(self):
self.assertDictEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(0, u'Allgemeines und \xdcbergreifendes'),
'new_number': '0',
'new_parent_position': None,
Expand All @@ -167,6 +169,7 @@ def test_repository_excel_analyser_os_test_branch_and_leaf_creation(self):
self.assertDictEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(4, 'Created branch', 'comment 1'),
'new_number': None,
'new_parent_position': None,
Expand All @@ -192,6 +195,7 @@ def test_repository_excel_analyser_os_test_branch_and_leaf_creation(self):
self.assertDictEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(41, 'created leaf', 'comment 2'),
'new_number': None,
'new_parent_position': None,
Expand All @@ -218,6 +222,7 @@ def test_repository_excel_analyser_os_test_branch_and_leaf_creation(self):
self.assertDictEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(42, 'Moved leaf', 'comment for moved one'),
'new_number': '2',
'new_parent_position': '4',
Expand All @@ -244,6 +249,7 @@ def test_repository_excel_analyser_os_test_migration(self):
self.assertDictEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(1, u"F\xfchrung und Koordination", ""),
'new_number': None,
'new_parent_position': None,
Expand All @@ -261,6 +267,7 @@ def test_repository_excel_analyser_os_test_migration(self):
self.assertDictEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(0, u'Branch with new number', ''),
'new_number': '0',
'new_parent_position': None,
Expand All @@ -280,6 +287,7 @@ def test_repository_excel_analyser_os_test_migration(self):
self.assertDictEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem('01', 'created leaf in branch with new number', 'comment 1'),
'new_number': None,
'new_parent_position': None,
Expand All @@ -305,6 +313,7 @@ def test_repository_excel_analyser_os_test_migration(self):
self.assertDictEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(12, 'created leaf in existing branch', 'comment 2'),
'new_number': None,
'new_parent_position': None,
Expand All @@ -328,6 +337,7 @@ def test_repository_excel_analyser_os_test_migration(self):
self.assertDictEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem('02', 'Moved leaf in branch with new number', 'comment for moved one'),
'new_number': '2',
'new_parent_position': '0',
Expand Down Expand Up @@ -360,6 +370,7 @@ def test_repository_excel_analyser_os_test_invalid(self):
self.assertEqual(
{'is_valid': False,
'leaf_node_violated': True,
'merge_into': None,
'new_item': OperationItem('111', u"Rechnungspr\xfcfungskommission", None),
'new_number': '1',
'new_parent_position': '11',
Expand All @@ -378,6 +389,7 @@ def test_repository_excel_analyser_os_test_invalid(self):
self.assertEqual(
{'is_valid': False,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem('41', u"Spinn\xe4nnetzregistrar", None),
'new_number': '1',
'new_parent_position': '4',
Expand All @@ -399,6 +411,7 @@ def test_repository_excel_analyser_os_test_invalid(self):
self.assertEqual(
{'is_valid': False,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem('51', 'New leaf', None),
'new_number': None,
'new_parent_position': None,
Expand Down Expand Up @@ -426,6 +439,7 @@ def test_repository_excel_analyser_os_test_invalid(self):
self.assertEqual(
{'is_valid': False,
'leaf_node_violated': True,
'merge_into': None,
'new_item': OperationItem('112', 'Second new leaf', None),
'new_number': None,
'new_parent_position': None,
Expand All @@ -452,6 +466,7 @@ def test_repository_excel_analyser_os_test_invalid(self):
self.assertEqual(
{'is_valid': False,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem('1211', 'fourth level', None),
'new_number': None,
'new_parent_position': None,
Expand Down Expand Up @@ -599,6 +614,7 @@ def test_repository_migrator_change_description(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(1, u"F\xfchrung", "New description"),
'new_number': None,
'new_parent_position': None,
Expand Down Expand Up @@ -632,6 +648,7 @@ def test_repository_migrator_change_refnum(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(0, u"F\xfchrung", u"Alles zum Thema F\xfchrung."),
'new_number': '0',
'new_parent_position': None,
Expand All @@ -648,6 +665,7 @@ def test_repository_migrator_change_refnum(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem('01', u'Vertr\xe4ge und Vereinbarungen', None),
'new_number': None,
'new_parent_position': None,
Expand Down Expand Up @@ -693,6 +711,7 @@ def test_repository_migrator_change_title(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(1, "New title", u"Alles zum Thema F\xfchrung."),
'new_number': None,
'new_parent_position': None,
Expand Down Expand Up @@ -744,6 +763,7 @@ def test_repository_migrator_move(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(21, u'Vertr\xe4ge und Vereinbarungen', None),
'new_number': '1',
'new_parent_position': '2',
Expand Down Expand Up @@ -799,6 +819,7 @@ def test_repository_migrator_create_leaf(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(12, u'New leaf', 'New description'),
'new_number': None,
'new_parent_position': None,
Expand Down Expand Up @@ -856,6 +877,7 @@ def test_repository_migrator_create_branch_and_leaf_in_reporoot(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(4, u'New branch', 'New description'),
'new_number': None,
'new_parent_position': None,
Expand All @@ -879,6 +901,7 @@ def test_repository_migrator_create_branch_and_leaf_in_reporoot(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(41, u'New leaf', 'New leaf description'),
'new_number': None,
'new_parent_position': None,
Expand Down Expand Up @@ -947,6 +970,7 @@ def test_repository_migrator_create_in_moved_repofolder(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(12, u"Rechnungspr\xfcfungskommission", None),
'new_number': '2',
'new_parent_position': '1',
Expand All @@ -965,6 +989,7 @@ def test_repository_migrator_create_in_moved_repofolder(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(121, u'New leaf', 'New description'),
'new_number': None,
'new_parent_position': None,
Expand Down Expand Up @@ -1041,6 +1066,7 @@ def test_repository_migrator_move_into_created_repofolder(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(4, u'New branch', 'New description'),
'new_number': None,
'new_parent_position': None,
Expand All @@ -1064,6 +1090,7 @@ def test_repository_migrator_move_into_created_repofolder(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(41, u'Vertr\xe4ge und Vereinbarungen', None),
'new_number': '1',
'new_parent_position': '4',
Expand Down Expand Up @@ -1129,6 +1156,7 @@ def test_repository_migrator_move_into_repository_root(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(4, u'Vertr\xe4ge und Vereinbarungen', None),
'new_number': '4',
'new_parent_position': '',
Expand Down Expand Up @@ -1203,6 +1231,7 @@ def test_repository_migrator_move_into_moved_repofolder(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(12, u"Rechnungspr\xfcfungskommission", None),
'new_number': '2',
'new_parent_position': '1',
Expand All @@ -1219,6 +1248,7 @@ def test_repository_migrator_move_into_moved_repofolder(self):
self.assertDictEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(121, u'Vertr\xe4ge und Vereinbarungen', ''),
'new_number': '1',
'new_parent_position': '12',
Expand Down Expand Up @@ -1413,6 +1443,7 @@ def test_repository_migrator_create_sets_permissions_correctly(self):
self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': None,
'new_item': OperationItem(12, u'New leaf', 'New description'),
'new_number': None,
'new_parent_position': None,
Expand Down Expand Up @@ -1464,6 +1495,73 @@ def test_repository_migrator_create_sets_permissions_correctly(self):
'nicole.kohler': ['Owner']},
self.branch_repofolder.__ac_local_roles__)

def test_repository_migrator_merge_into_existing_repofolder(self):
self.login(self.manager)
migration_file = resource_filename('opengever.bundle.tests', 'assets/os_migration/os_test_merge_into_existing_repofolder.xlsx')
analysis_file = resource_filename('opengever.bundle.tests', 'assets/os_migration/test_analysis.xlsx')
analyser = RepositoryExcelAnalyser(migration_file, analysis_file)
analyser.analyse()

# We nerge eaf_repofolder into empty_repofolder
changed_rows = self.get_changed_rows(analyser.analysed_rows)
self.assertEqual(1, len(changed_rows))

self.assertEqual(
{'is_valid': True,
'leaf_node_violated': False,
'merge_into': ('2', self.empty_repofolder.UID()),
'new_item': OperationItem(2, u'Vertr\xe4ge und Vereinbarungen', None),
'new_number': None,
'new_parent_position': None,
'new_parent_uid': None,
'new_position_guid': None,
'new_position_parent_guid': None,
'new_position_parent_position': None,
'new_title': None,
'old_item': OperationItem(11, u'Vertr\xe4ge und Vereinbarungen', None),
'permissions': None,
'repository_depth_violated': False,
'uid': self.leaf_repofolder.UID()},
changed_rows[0])

migrator = RepositoryMigrator(analyser.analysed_rows)
self.assertEqual(1, len(migrator.items_to_merge()))
self.assertEqual(changed_rows, migrator.items_to_merge())

directly_contained = self.leaf_repofolder.contentValues()
contained = self.portal.portal_catalog.unrestrictedSearchResults(
path={'query': self.leaf_repofolder.absolute_url_path(),
'exclude_root': True})
contained_uids = [brain.UID for brain in contained]
self.assertEqual(16, len(directly_contained))
self.assertEqual(59, len(contained_uids))

with self.observe_children(self.branch_repofolder) as branch_children,\
self.observe_children(self.empty_repofolder) as children:
migrator.run()

# check that branch_repofolder was deleted
self.assertEqual(1, len(branch_children['removed']))

# check that the content of the leaf_folder was moved
self.assertEqual(16, len(children['added']))
self.assertItemsEqual(directly_contained, children['added'])

# We check that new_branch and all contained objects were updated
# correctly
contained_brains = self.portal.portal_catalog.unrestrictedSearchResults(
path={'query': self.empty_repofolder.absolute_url_path(),
'exclude_root': True})

self.assertItemsEqual([brain.UID for brain in contained_brains],
contained_uids)

for brain in contained_brains:
obj = brain.getObject()
self.assertObjectConsistency(
obj, parent_path=self.empty_repofolder.absolute_url_path(),
parent_refnum='Client1 2')


class TestOSMigrationValidation(IntegrationTestCase, OSMigrationTestMixin):

Expand Down

0 comments on commit 96fb28b

Please sign in to comment.