class TestUtils: def setup_class(self): self.config = testing.setUp() self.root = BaseFolder("root") self.f0 = BaseFolder("f0") self.f1 = BaseFolder("f1") self.x0 = BaseContent("x0") self.x1 = BaseContent("x1") self.f0.add_content(self.x0) self.f0.add_content(self.x1) self.root.add_content(self.f0) self.root.add_content(self.f1) def teardown_class(self): testing.tearDown() def test_object_to_path(self): assert ["f0", "x1"] == object_to_path(self.x1, as_list=True) assert "/f0/x1" == object_to_path(self.x1) assert ".f0.x1" == object_to_path(self.x1, path_sep=".") def test_path_to_object(self): assert self.x0 == path_to_object("/f0/x0", self.root)
def setup_class(self): self.config = testing.setUp() self.root = BaseFolder("root") self.f0 = BaseFolder("f0") self.f1 = BaseFolder("f1") self.x0 = TestContent("x0") self.x1 = TestContent("x1") self.f0.add_content(self.x0) self.f0.add_content(self.x1) self.root.add_content(self.f0) self.root.add_content(self.f1)
def list_content(self, content_type=None, iface=None, **kwargs): """ use base listing, but filter out temp objects """ result = HitmanBaseFolder.list_content( self, content_type, iface, **kwargs) # filter out temp objects result = [r for r in result if not ITemporaryObject.providedBy(r)] return result
def setup_class(self): self.config = testing.setUp() self.root = BaseFolder("root") self.root.__name__ = 'root' self.f0 = BaseFolder("f0") self.f1 = BaseFolder("f1") self.x0 = TestContent("x0") self.x1 = TestContent("x1") self.f0.add_content(self.x0) self.f0.add_content(self.x1) self.root.add_content(self.f0) self.root.add_content(self.f1) Registry.register('testcontent', TestContent)
class TestBaseModel: def setup_class(self): self.config = testing.setUp() self.root = BaseFolder("root") self.f0 = BaseFolder("f0") self.f1 = BaseFolder("f1") self.x0 = TestContent("x0") self.x1 = TestContent("x1") self.f0.add_content(self.x0) self.f0.add_content(self.x1) self.root.add_content(self.f0) self.root.add_content(self.f1) def teardown_class(self): testing.tearDown() def test_model(self): request = testing.DummyRequest() assert ["f0", "x1"] == self.x1.path assert self.x0.id == 'x0' self.x0.set_id('x0-new') assert self.x0.id == 'x0-new' self.x0.set_id('x0') assert self.x0.owner == '' self.x0.owner = 'Tester' assert self.x0.owner == 'Tester' assert self.x0.content_type == 'testcontent' assert self.x0.allowed_content_types(request) == [] assert self.x0.base_id == 'testcontent' assert self.x0.has_parent assert self.x0.__data__.as_dict() == {} self.x0.set_attribute('whatyouwant', 'a little respect') assert self.x0.__data__.as_dict() == { 'whatyouwant': 'a little respect'} form = self.x0.__form__(request) assert self.x0.title == 'x0' now = datetime.datetime.now() assert self.x0.created <= now assert self.x0.changed >= self.x0.created assert self.x0.dottedpath == '.f0.x0' assert str(self.x0) == 'x0' gello = TestContent("gello") self.f0.add_content(gello) self.f0.rename_content("gello", "yello") content = self.f0.get_content("yello") content2 = self.f0.get_content("yello", content_type='testcontent') assert content == content2 == gello assert "yello" in self.f0._list_content_ids() listing1 = self.f0.list_content(content_type='testcontent') listing2 = self.f0.list_content(iface=ITestContent) listing3 = self.f0.list_content() assert listing1 == listing2 == listing3 self.f0.move_content('yello', -1) listing4 = self.f0.list_content() assert listing3.index(gello) == 2 assert listing4.index(gello) == 1 listing_ordered = self.f0.list_content(order_by='id') assert listing4 != listing_ordered assert set(listing1) == set(listing_ordered) self.f0.set_order(order=[]) assert str(self.f0) == 'f0' found1 = self.f0.find_content() found2 = self.f0.find_content(content_type="testcontent") assert found1 assert found1 == found2 assert self.f0._normalize_id("wat's up?") == "wat-s-up-" assert self.f0.generate_content_id("wat's up?") == "wat-s-up-" assert self.f0.generate_content_id("yello") == "yello_1" self.f0.remove_content("yello")
def __init__(self, content_id, data=None, **kwargs): HitmanBaseFolder.__init__(self, content_id, data, **kwargs)
class TestUtils: def setup_class(self): self.config = testing.setUp() self.root = BaseFolder("root") self.root.__name__ = 'root' self.f0 = BaseFolder("f0") self.f1 = BaseFolder("f1") self.x0 = TestContent("x0") self.x1 = TestContent("x1") self.f0.add_content(self.x0) self.f0.add_content(self.x1) self.root.add_content(self.f0) self.root.add_content(self.f1) Registry.register('testcontent', TestContent) def teardown_class(self): testing.tearDown() def test_view_changed(self): request = testing.DummyRequest() view = base.ContentView(self.x0, request) now = datetime.datetime.now() assert self.x0.changed <= now assert view.changed == self.x0.changed.strftime("%d-%m-%Y %H:%M") def test_view_list_fields(self): request = testing.DummyRequest() view = base.ContentView(self.x0, request) fields = view.list_fields() labels = set(["Name", "Short description", "Keywords", "Page text (including images)"]) field_labels = set([f['label'] for f in fields]) assert labels ^ field_labels == set([]) def test_DelView(self): request = testing.DummyRequest() request.application_url = 'http://example.com/' assert 'x1' in self.f0._list_content_ids() view = base.DelView(self.x1, request) result = view() assert result == {} assert 'x1' in self.f0._list_content_ids() request.params['cancel'] = 'cancel' result = view() assert isinstance(result, HTTPFound) assert result.location == 'http://example.com/root/f0/x1/' assert 'x1' in self.f0._list_content_ids() request.params['submit'] = 'submit' result = view() assert isinstance(result, HTTPFound) after_del_redirect = view.after_del_redirect assert result.location == after_del_redirect # check if the object has been removed assert 'x1' not in self.f0._list_content_ids() def test_EditView(self): request = testing.DummyRequest() request.application_url = 'http://example.com/' view = base.EditView(self.x0, request) assert view.content_type == 'testcontent' assert view.after_edit_redirect == 'http://example.com/root/f0/x0/' assert self.x0.__data__['name'] is None # submit empty edit form, will result in error (name is required) request.params['w20e.forms.process'] = 1 result = view() assert isinstance(result, dict) assert 'name' in result['errors'] assert 'required' in result['errors']['name'] assert self.x0.__data__['name'] is None # submit form with name name = "Gëllo, I'm x0" request.params['name'] = name view = base.EditView(self.x0, request) result = view() assert isinstance(result, HTTPFound) assert result.location == 'http://example.com/root/f0/x0/' assert self.x0.__data__['name'] == name def test_AddView(self): request = testing.DummyRequest() request.application_url = 'http://example.com/' request.params['ctype'] = 'testcontent' view = base.AddView(self.f1, request) assert view.content_type == 'testcontent' assert view.after_add_redirect == 'http://example.com/root/f1/' assert view.cancel_add_redirect == 'http://example.com/root/f1/' result = view() assert isinstance(result, dict) assert result['status'] == 'unknown' assert result['errors'] == {} # submit empty form request.params['w20e.forms.process'] = 1 view = base.AddView(self.f1, request) result = view() assert isinstance(result, dict) assert result['status'] == 'error' assert 'name' in result['errors'] assert 'required' in result['errors']['name'] # submit form with name set name = "My ådded cøntënt" request.params['w20e.forms.process'] = 1 request.params['name'] = name view = base.AddView(self.f1, request) result = view() assert isinstance(result, HTTPFound) assert result.location == 'http://example.com/root/f1/' content = self.f1.list_content(content_type='testcontent') assert len(content) == 1 assert content[0].__data__['name'] == name