class TestResolveTemplatedOrphans(OsfTestCase): def setUp(self): super(TestResolveTemplatedOrphans, self).setUp() self.node = NodeFactory() self.project = ProjectFactory(creator=self.node.creator) self.project.nodes.append(self.node) self.project.save() self.templated_project = self.project.use_as_template( Auth(self.node.creator) ) self.templated_node = self.templated_project.nodes[0] self.templated_project.nodes = [] self.templated_project.save() def test_find(self): orphans = find_templated_orphans() assert_equal(orphans.count(), 1) assert_equal(orphans[0], self.templated_node) def test_resolve(self): assert_not_in(self.templated_node, self.templated_project.nodes) resolve_templated_orphan(self.node) assert_in(self.node, self.project.nodes)
class TestMigrateTemplates(OsfTestCase): def setUp(self): super(TestMigrateTemplates, self).setUp() # Create registration with correct settings self.user = UserFactory() self.consolidated_auth = Auth(user=self.user) # Create base project self.base_project = ProjectFactory( creator=self.user, piwik_site_id=1, ) self.base_component = NodeFactory( project=self.base_project, creator=self.user, piwik_site_id=2, ) # Create valid template self.template_project = self.base_project.use_as_template( auth=self.consolidated_auth ) self.template_project.piwik_site_id = 3 self.template_project.save() self.template_component = self.template_project.nodes[0] self.template_component.piwik_site_id = 4 self.template_component.save() # Create broken fork self.bad_template_project = self.base_project.use_as_template( auth=self.consolidated_auth ) self.bad_template_project.piwik_site_id = self.base_project.piwik_site_id self.bad_template_project.save() self.bad_template_component = self.bad_template_project.nodes[0] self.bad_template_component.piwik_site_id = self.base_component.piwik_site_id self.bad_template_component.save() responses.start() responses.add( responses.GET, '{host}index.php?module=API&method=SitesManager.getAllSites&format=JSON&token_auth={auth_token}'.format( host=PIWIK_HOST, auth_token=PIWIK_ADMIN_TOKEN, ), status=200, content_type='application/json', body=json.dumps({ '1': {'name': 'Node: ' + self.base_project._id}, '2': {'name': 'Node: ' + self.base_component._id}, '3': {'name': 'Node: ' + self.template_project._id}, '4': {'name': 'Node: ' + self.template_component._id}, }), match_querystring=True, ) def tearDown(self): super(TestMigrateTemplates, self).tearDown() Node.remove() responses.stop() responses.reset() piwik_cache._cache = None def test_get_broken_templated(self): nodes = set(get_broken_templated()) assert_equal(2, len(nodes)) assert_equal( {self.bad_template_project, self.bad_template_component}, nodes, ) def test_fix_templated(self): assert_equal( 2, fix_nodes(get_broken_templated()) ) Node._clear_caches() broken_nodes = list(get_broken_templated()) assert_equal(0, len(broken_nodes)) assert_is_none(self.bad_template_project.piwik_site_id) assert_is_none(self.bad_template_component.piwik_site_id) assert_is_not_none(self.template_project.piwik_site_id) assert_is_not_none(self.template_component.piwik_site_id)