コード例 #1
0
ファイル: test_siteinfo.py プロジェクト: ra2003/hyde-old
    def assert_node_attributes(self, node):
        fragment = self.get_node_fragment(node)
        if node.type == "content":
            fragment = node.folder.get_fragment(self.site.content_folder)
        elif node.type == "media":
            fragment = node.folder.get_fragment(self.site.folder)
        if node.type in ("content", "media"):
            fragment = ("/" + fragment.strip("/")).rstrip("/")
            assert fragment == node.url
            assert settings.SITE_WWW_URL + fragment == node.full_url
        else:
            assert not node.url
            assert not node.full_url

        if node.type == "content":
            for ancestor in node.ancestors:
                assert(
                    ancestor.folder.is_ancestor_of(node.folder) or
                    ancestor.folder.same_as(node.folder))

        assert node.source_folder == node.folder
        if not node == self.site and node.type not in ("content", "media"):
            assert not node.target_folder
            assert not node.temp_folder
        else:
            assert node.target_folder.same_as(Folder(
                            os.path.join(settings.DEPLOY_DIR,
                                fragment.lstrip("/"))))
            assert node.temp_folder.same_as(Folder(
                            os.path.join(settings.TMP_DIR,
                                fragment.lstrip("/"))))
コード例 #2
0
ファイル: clyde.py プロジェクト: gulBAC/gulBAC-oldsite
    def dopost(self, site):
        path = self.get_argument("path", None)
        original_path = self.get_argument("original_path", None)
        type = self.get_argument('type', None)
        repo = self.settings['sites'][site]['repo']
        dvcs = DVCS.load_dvcs(self.siteinfo.folder.path, repo)
        if type == "file":
            f = File(self.siteinfo.folder.child(original_path))
            newf = File(self.siteinfo.folder.child(path))
            if not f.exists:
                newf.write("")
                dvcs.add_file(newf)
            else:
                f.move_to(newf)
                dvcs.add_file(newf, message="Renamed " + path)

        else:
            f = Folder(self.siteinfo.folder.child(original_path))
            newf = Folder(self.siteinfo.folder.child(path))
            if not f.exists:
                newf.make()
            else:
                f.move_to(newf)
                dvcs.add_file(newf, message="Renamed " + path)
        self.init_site(site, force=True)
コード例 #3
0
 def __init__(self, settings, site_path):
     super(SiteInfo, self).__init__(Folder(site_path))
     self.settings = settings
     self.m = None
     self._stop = Event()
     self.nodemap = {site_path: self}
     self.resourcemap = {}
コード例 #4
0
ファイル: clyde.py プロジェクト: gulBAC/gulBAC-oldsite
    def dopost(self, site):
        path = self.get_argument("path", None)
        type = self.get_argument('type', None)
        repo = self.settings['sites'][site]['repo']
        dvcs = DVCS.load_dvcs(self.siteinfo.folder.path, repo)
        f = None
        if type == "file":
            f = File(self.siteinfo.folder.child(path))
        else:
            f = Folder(self.siteinfo.folder.child(path))

        f.delete()
        dvcs.save_draft()
        self.init_site(site, force=True)
コード例 #5
0
ファイル: siteinfo.py プロジェクト: gulBAC/gulBAC-oldsite
 def simple_dict(self):
     ress = []
     for resource in self.walk_resources():
         fragment = Folder(
             resource.node.folder.get_fragment(
                 self.site.folder.path)).child(resource.file.name)
         res = dict(name=resource.file.name, path=fragment)
         ress.append(res)
     nodes = []
     for node in self.children:
         nodes.append(node.simple_dict)
     return dict(name=self.folder.name,
                 path=self.folder.get_fragment(self.site.folder.path),
                 resources=ress,
                 nodes=nodes)
コード例 #6
0
ファイル: test_siteinfo.py プロジェクト: jekhor/contrib-site
    def test_folder_flattener(self):
        settings.MEDIA_PROCESSORS = {}
        settings.SITE_POST_PROCESSORS = {
            "blog": {
                "hydeengine.site_post_processors.FolderFlattener": {
                    'remove_processed_folders': True,
                    'pattern': "*.html"
                }
            }
        }

        self.generator = Generator(TEST_SITE.path)
        self.generator.generate()

        blog = Folder(settings.DEPLOY_DIR).child_folder("blog")

        class TestFlattener:
            def __init__(self):
                self.files = []

            def visit_folder(self, folder):
                assert folder.name in ("blog")

            def visit_file(self, a_file):
                self.files.append(a_file.name)

        tester = TestFlattener()
        blog.list(tester)
        blog_src = Folder(settings.CONTENT_DIR).child_folder("blog")

        class VerifyFlattener:
            @staticmethod
            def visit_file(a_file):
                try:
                    tester.files.index(a_file.name)
                except:
                    assert False

        blog_src.walk(VerifyFlattener)
コード例 #7
0
    def render(self, context):
        sitemap_node = None
        self.path = self.path.render(context).strip('"')
        sitemap_node = context["site"].find_node(Folder(self.path))
        if not sitemap_node:
            sitemap_node = context["site"]

        def later(page1, page2):
            return (page1, page2)[page2.created > page1.created]
        page = reduce(later, sitemap_node.walk_pages())
        rendered = None
        rendered = render_to_string(str(page), context)
        excerpt_start = marker_start % "Excerpt"
        excerpt_end = marker_end % "Excerpt"
        start = rendered.find(excerpt_start)
        if not start == -1:
            context["latest_excerpt_url"] = page.url
            context["latest_excerpt_title"] = page.title
            start = start + len(excerpt_start)
            end = rendered.find(excerpt_end, start)
            return truncatewords_html(rendered[start:end], self.words)
        else:
            return ""
コード例 #8
0
ファイル: test_siteinfo.py プロジェクト: lachenmayer/hyde
 def test_folder_flattener(self):
     settings.MEDIA_PROCESSORS = {}
     settings.CONTENT_PROCESSORS = {}
     settings.SITE_POST_PROCESSORS = {
         "blog" : {
             "hydeengine.site_post_processors.FolderFlattener" : {
                     'remove_processed_folders': True,
                     'pattern':"*.html"
             }
         }
     }
     
     self.generator = Generator(TEST_SITE.path)
     self.generator.generate()
     
     blog = Folder(settings.DEPLOY_DIR).child_folder("blog")
             
     class TestFlattener:
         def __init__(self):
             self.files = []
             
         def visit_folder(self, folder):
             assert folder.name in ("blog")
             
         def visit_file(self, a_file):
             self.files.append(a_file.name)
             
     tester = TestFlattener()
     blog.list(tester)        
     blog_src = Folder(settings.CONTENT_DIR).child_folder("blog")
     
     class VerifyFlattener:            
         @staticmethod
         def visit_file(a_file):
             try:
                 tester.files.index(a_file.name)
             except:
                 assert False    
     blog_src.walk(VerifyFlattener)    
コード例 #9
0
ファイル: test_siteinfo.py プロジェクト: lachenmayer/hyde
from Queue import Empty

from django.conf import settings
from django.utils.html import strip_spaces_between_tags

TEST_ROOT = os.path.dirname(os.path.abspath(__file__))
ROOT = os.path.abspath(TEST_ROOT + "/..")

sys.path = [ROOT] + sys.path

from hydeengine.file_system import File, Folder
from hydeengine import url, Initializer, Generator, setup_env
from hydeengine.siteinfo import SiteNode, SiteInfo, Page
from hydeengine.site_post_processors import FolderFlattener

TEST_ROOT = Folder(TEST_ROOT)
TEST_SITE = TEST_ROOT.child_folder("test_site")

def setup_module(module):
    Initializer(TEST_SITE.path).initialize(ROOT, force=True)
    setup_env(TEST_SITE.path)
    
def teardown_module(module):
    TEST_SITE.delete()

class TestFilters:
    
    def setup_method(self, method):
        self.files = []
        
    def teardown_method(self, method):
コード例 #10
0
 def target_folder(self):
     return Folder(self.settings.DEPLOY_DIR)
コード例 #11
0
ファイル: siteinfo.py プロジェクト: gulBAC/gulBAC-oldsite
 def target_folder(self):
     deploy_folder = self.site.target_folder
     return deploy_folder.child_folder_with_fragment(
         Folder(self.site.media_folder.name).child(self.fragment))
コード例 #12
0
import unittest

from django.conf import settings
from util import assert_html_equals

TEST_ROOT = os.path.dirname(os.path.abspath(__file__))
ROOT = os.path.abspath(TEST_ROOT + "/..")

sys.path = [ROOT] + sys.path

from hydeengine.file_system import File, Folder
from hydeengine import url, Initializer, Generator, setup_env
from hydeengine.siteinfo import SiteNode, SiteInfo, Page
from hydeengine.site_post_processors import FolderFlattener

TEST_ROOT = Folder(TEST_ROOT)
TEST_SITE = TEST_ROOT.child_folder("test_site")

ORIGINAL_PRE_PROCESSORS = None
if settings.configured:
    ORIGINAL_PRE_PROCESSORS = settings.SITE_PRE_PROCESSORS


def setup_module(module):
    Initializer(TEST_SITE.path).initialize(ROOT, template='test', force=True)
    setup_env(TEST_SITE.path)
    ORIGINAL_PRE_PROCESSORS = settings.SITE_PRE_PROCESSORS
    settings.SITE_PRE_PROCESSORS = {
        '/': {
            'hydeengine.site_pre_processors.NodeInjector': {
                'variable': 'blog_node',
コード例 #13
0
ファイル: test_htaccess.py プロジェクト: jekhor/contrib-site
import os
import sys
from django.conf import settings

TEST_ROOT = os.path.dirname(os.path.abspath(__file__))
ROOT = os.path.abspath(TEST_ROOT + "/..")

sys.path = [ROOT] + sys.path

from hydeengine.file_system import File, Folder
from hydeengine import url, Initializer, setup_env
from hydeengine.templatetags.hydetags \
        import RenderHydeListingPageRewriteRulesNode as htaccessgen

TEST_SITE = Folder(TEST_ROOT).child_folder("test_site")


def setup_module(module):
    Initializer(TEST_SITE.path).initialize(ROOT, template="test", force=True)
    setup_env(TEST_SITE.path)


def teardown_module(module):
    TEST_SITE.delete()


class TestHtaccess:
    def test_listing_page_rewite_rule_generator(self):
        # test with two names
        settings.LISTING_PAGE_NAMES = ['listing', 'index']
コード例 #14
0
ファイル: siteinfo.py プロジェクト: gulBAC/gulBAC-oldsite
 def temp_folder(self):
     temp_folder = self.site.temp_folder
     return temp_folder.child_folder_with_fragment(
         Folder(self.site.media_folder.name).child(self.fragment))
コード例 #15
0
 def content_folder(self):
     return Folder(self.settings.CONTENT_DIR)
コード例 #16
0
ファイル: test_siteinfo.py プロジェクト: ra2003/hyde-old
 def assert_node_type(node_dir, type):
    node = self.site.find_child(Folder(node_dir))
    assert node
    assert Folder(node_dir).same_as(node.folder)
    for child in node.walk():
        assert child.type == type
コード例 #17
0
 def layout_folder(self):
     return Folder(self.settings.LAYOUT_DIR)
コード例 #18
0
 def media_folder(self):
     return Folder(self.settings.MEDIA_DIR)
コード例 #19
0
 def temp_folder(self):
     return Folder(self.settings.TMP_DIR)