def test_resource_exists_default_format(self): res = resource.Resource('fake', 'exists', version=1) link = resource.render_resource_link(self.env, self.context, res) html = tag.a('fake:exists', class_='fake', href='/trac.cgi/fake/exists?version=1') self.assertEqual(unicode(html), unicode(link))
def test_resource_has_no_manager_default_format(self): res = resource.Resource('unmanaged', 'exists', version=1) link = resource.render_resource_link(self.env, self.context, res) html = tag.a('unmanaged:exists', class_='unmanaged', href='/trac.cgi/unmanaged/exists?version=1') self.assertEqual(unicode(html), unicode(link))
class ProductReportResourceTestCase(ProductResourceTestCase): resource = resource.Resource('report', 1) def test_global_neighborhood_report(self): target = resource.Neighborhood('global', None).child(self.resource) self.assertEquals("[global:] report:1", resource.get_resource_description(self.env, target)) self.assertEquals("[global:] report:1", resource.get_resource_name(self.env, target)) self.assertEquals("[global:] report:1", resource.get_resource_shortname(self.env, target)) self.assertEquals('[global:] report:1 at version None', resource.get_resource_summary(self.env, target)) self.assertEquals( 'http://example.org/trac.cgi/report/1', resource.get_resource_url(self.env, target, self.env.href)) def test_product_neighborhood_report(self): target = resource.Neighborhood('product', u'xü').child(self.resource) self.assertEquals(u"[product:xü] report:1", resource.get_resource_description(self.env, target)) self.assertEquals(u"[product:xü] report:1", resource.get_resource_name(self.env, target)) self.assertEquals(u"[product:xü] report:1", resource.get_resource_shortname(self.env, target)) self.assertEquals(u"[product:xü] report:1 at version None", resource.get_resource_summary(self.env, target)) self.assertEquals( 'http://example.org/trac.cgi/products/x%C3%BC/report/1', resource.get_resource_url(self.env, target, self.env.href))
class ProductMilestoneResourceTestCase(ProductResourceTestCase): resource = resource.Resource('milestone', 'milestone1') def test_global_neighborhood_milestone(self): target = resource.Neighborhood('global', None).child(self.resource) self.assertEquals("[global:] Milestone milestone1", resource.get_resource_description(self.env, target)) self.assertEquals("[global:] Milestone milestone1", resource.get_resource_name(self.env, target)) self.assertEquals("milestone1", resource.get_resource_shortname(self.env, target)) self.assertEquals("[global:] Milestone milestone1", resource.get_resource_summary(self.env, target)) self.assertEquals( 'http://example.org/trac.cgi/milestone/milestone1', resource.get_resource_url(self.env, target, self.env.href)) def test_product_neighborhood_milestone(self): target = resource.Neighborhood('product', u'xü').child(self.resource) self.assertEquals(u"[product:xü] Milestone milestone1", resource.get_resource_description(self.env, target)) self.assertEquals(u"[product:xü] Milestone milestone1", resource.get_resource_name(self.env, target)) self.assertEquals(u"milestone1", resource.get_resource_shortname(self.env, target)) self.assertEquals(u"[product:xü] Milestone milestone1", resource.get_resource_summary(self.env, target)) self.assertEquals( 'http://example.org/trac.cgi/products/x%C3%BC/milestone/milestone1', resource.get_resource_url(self.env, target, self.env.href))
def test_resource_missing_default_format(self): res = resource.Resource('fake', 'missing', version=1) link = resource.render_resource_link(self.env, self.context, res) html = tag.a('fake:missing', class_='fake missing', rel='nofollow', href='/trac.cgi/fake/missing?version=1') self.assertEqual(unicode(html), unicode(link))
def test_resource_exists_summary_format(self): res = resource.Resource('fake', 'exists', version=1) link = resource.render_resource_link(self.env, self.context, res, 'summary') html = tag.a('fake:exists at version 1', class_='fake', href='/trac.cgi/fake/exists?version=1') self.assertEqual(str(html), str(link))
def test_resource_has_no_manager_summary_format(self): res = resource.Resource('unmanaged', 'exists', version=1) link = resource.render_resource_link(self.env, self.context, res, 'summary') html = tag.a('unmanaged:exists at version 1', class_='unmanaged', href='/trac.cgi/unmanaged/exists?version=1') self.assertEqual(str(html), str(link))
def test_resource_missing_summary_format(self): res = resource.Resource('fake', 'missing', version=1) link = resource.render_resource_link(self.env, self.context, res, 'summary') html = tag.a('fake:missing at version 1', class_='fake missing', rel='nofollow', href='/trac.cgi/fake/missing?version=1') self.assertEqual(str(html), str(link))
def test_hierarchy_clone(self): def enum_parents(r): while r is not None: yield r r = r.parent nbh = resource.Neighborhood('realm', 'id') nbh1 = resource.Neighborhood('realm', 'id1') src = resource.Resource('attachment', 'file.txt') src.parent = resource.Resource('wiki', 'WikiStart') src.parent.parent = resource.Resource('x', 'y') self.assertTrue( all(r.neighborhood is nbh for r in enum_parents(nbh(src)))) self.assertTrue(all(r.neighborhood is None for r in enum_parents(src))) src = nbh1(src) self.assertTrue( all(r.neighborhood is nbh for r in enum_parents(nbh(src)))) self.assertTrue(all(r.neighborhood is nbh1 for r in enum_parents(src)))
class ProductWikiResourceTestCase(ProductResourceTestCase): resource = resource.Resource('wiki', 'TestPage', version=2) def setUp(self): ProductResourceTestCase.setUp(self) page = WikiPage(self.global_env) page.name = 'TestPage' page.text = 'Bla bla' t = datetime(2001, 1, 1, 1, 1, 1, 0, utc) page.save('joe', 'Testing global', '::1', t) page.text = 'Bla bla bla' t = datetime(2002, 2, 2, 2, 2, 2, 0, utc) page.save('joe', 'Testing global 2', '::1', t) page = WikiPage(self.env1) page.name = 'TestPage' page.text = 'alb alB' t = datetime(2011, 1, 1, 1, 1, 1, 0, utc) page.save('mary', 'Testing product', '::1', t) page.text = 'Bla bla bla' t = datetime(2012, 2, 2, 2, 2, 2, 0, utc) page.save('mary', 'Testing product 2', '::1', t) def test_global_neighborhood_wiki(self): target = resource.Neighborhood('global', None).child(self.resource) self.assertEquals("TestPage", resource.get_resource_description(self.env, target)) self.assertEquals("TestPage", resource.get_resource_name(self.env, target)) self.assertEquals("TestPage", resource.get_resource_shortname(self.env, target)) self.assertEquals("TestPage", resource.get_resource_summary(self.env, target)) self.assertEquals( 'http://example.org/trac.cgi/wiki/TestPage?version=2', resource.get_resource_url(self.env, target, self.env.href)) def test_product_neighborhood_wiki(self): target = resource.Neighborhood('product', u'xü').child(self.resource) self.assertEquals(u"TestPage", resource.get_resource_description(self.env, target)) self.assertEquals(u"TestPage", resource.get_resource_name(self.env, target)) self.assertEquals(u"TestPage", resource.get_resource_shortname(self.env, target)) self.assertEquals(u"TestPage", resource.get_resource_summary(self.env, target)) self.assertEquals( 'http://example.org/trac.cgi/products/x%C3%BC/wiki/TestPage?version=2', resource.get_resource_url(self.env, target, self.env.href))
def setUp(self): ProductResourceTestCase.setUp(self) self.global_env.path = os.path.join(tempfile.gettempdir(), 'trac-tempenv') if os.path.exists(self.global_env.path): shutil.rmtree(self.global_env.path) os.mkdir(self.global_env.path) attachment = Attachment(self.global_env, 'ticket', 1) attachment.description = 'Global Bar' attachment.insert('foo.txt', StringIO(''), 0) attachment = Attachment(self.env1, 'ticket', 1) attachment.description = 'Product Bar' attachment.insert('foo.txt', StringIO(''), 0) self.resource = resource.Resource('ticket', 1).child('attachment', 'foo.txt')
def test_equals(self): # Plain equalities self.assertEqual(resource.Resource(), resource.Resource()) self.assertEqual(resource.Resource(None), resource.Resource()) self.assertEqual(resource.Resource('wiki'), resource.Resource('wiki')) self.assertEqual(resource.Resource('wiki', 'WikiStart'), resource.Resource('wiki', 'WikiStart')) self.assertEqual(resource.Resource('wiki', 'WikiStart', 42), resource.Resource('wiki', 'WikiStart', 42)) # Inequalities self.assertNotEqual(resource.Resource('wiki', 'WikiStart', 42), resource.Resource('wiki', 'WikiStart', 43)) self.assertNotEqual(resource.Resource('wiki', 'WikiStart', 0), resource.Resource('wiki', 'WikiStart', None)) # Resource hierarchy r1 = resource.Resource('attachment', 'file.txt') r1.parent = resource.Resource('wiki', 'WikiStart') r2 = resource.Resource('attachment', 'file.txt') r2.parent = resource.Resource('wiki', 'WikiStart') self.assertEqual(r1, r2) r2.parent = r2.parent(version=42) self.assertNotEqual(r1, r2)
def test_resources_equals(self): nbh = resource.Neighborhood('realm', 'id') nbh1 = resource.Neighborhood('realm', 'id1') # Plain equalities self.assertEqual(nbh(resource.Resource()), nbh(resource.Resource())) self.assertEqual(nbh(resource.Resource(None)), nbh(resource.Resource())) self.assertEqual(nbh(resource.Resource('wiki')), nbh(resource.Resource('wiki'))) self.assertEqual(nbh(resource.Resource('wiki', 'WikiStart')), nbh(resource.Resource('wiki', 'WikiStart'))) self.assertEqual(nbh(resource.Resource('wiki', 'WikiStart', 42)), nbh(resource.Resource('wiki', 'WikiStart', 42))) # Inequalities self.assertNotEqual(nbh(resource.Resource('wiki', 'WikiStart', 42)), nbh(resource.Resource('wiki', 'WikiStart', 43))) self.assertNotEqual(nbh(resource.Resource('wiki', 'WikiStart', 0)), nbh(resource.Resource('wiki', 'WikiStart', None))) self.assertNotEqual(nbh1(resource.Resource()), nbh(resource.Resource())) self.assertNotEqual(nbh1(resource.Resource(None)), nbh(resource.Resource())) self.assertNotEqual(nbh1(resource.Resource('wiki')), nbh(resource.Resource('wiki'))) self.assertNotEqual(nbh1(resource.Resource('wiki', 'WikiStart')), nbh(resource.Resource('wiki', 'WikiStart'))) self.assertNotEqual(nbh1(resource.Resource('wiki', 'WikiStart', 42)), nbh(resource.Resource('wiki', 'WikiStart', 42))) # Resource hierarchy r1 = nbh(resource.Resource('attachment', 'file.txt')) r1.parent = nbh(resource.Resource('wiki', 'WikiStart')) r2 = nbh(resource.Resource('attachment', 'file.txt')) r2.parent = nbh(resource.Resource('wiki', 'WikiStart')) self.assertEqual(r1, r2) r2.parent = r2.parent(version=42) self.assertNotEqual(r1, r2)