Example #1
0
class TestGitWikiPathUrls(unittest.TestCase):

    def setUp(self):
        self.temp_dir = tempfile.TemporaryDirectory("TestDownloadToday", "")
        self.path_manager = PathManager(self.temp_dir)

    def tearDown(self):
        self.temp_dir.cleanup()

    def test_folder_index(self):
        url = "/toto/tutu/"
        path = self.path_manager.get_path_from_url(url)
        print("Path = " + path)
        self.assertEqual(os.path.join(self.temp_dir.name, url, "index.md"), path)

    def test_page(self):
        url = "/toto/tutu"
        path = self.path_manager.get_path_from_url(url)
        self.assertEqual(os.path.join(self.temp_dir.name, url + '.md'), path)

    def test_page_with_space(self):
        url = "/toto/tu%20tu"
        decoded_url = "/toto/tu tu"
        path = self.path_manager.get_path_from_url(url)
        self.assertEqual(os.path.join(self.temp_dir.name, decoded_url + '.md'), path)

    def test_other_resource(self):
        url = '/test.jpg'
        path = self.path_manager.get_path_from_url(url)
        print("Path = " + path)
        self.assertEqual(os.path.join(self.temp_dir.name, url), path)
Example #2
0
from flask import Flask, redirect, url_for
import sys
import os
from gitwiki.pathmanager import PathManager
from gitwiki.pagerenderer import PageRenderer
from gitwiki.breadcrumbrenderer import BreadcrumbRenderer
from gitwiki.wikipageview import WikiView
from gitwiki.staticpageview import StaticView

BASE_PAGE_URL = '/pages/'

if __name__ == "__main__":
    base_pages_path = sys.argv[1]
    program_base_path = os.path.dirname(os.path.realpath(__file__))

    path_manager = PathManager(base_pages_path)
    page_renderer = PageRenderer(base_url=BASE_PAGE_URL,
                                 base_pages_path=base_pages_path)
    breadcrumb_renderer = BreadcrumbRenderer(BASE_PAGE_URL)
    print("Base page path = %s" % base_pages_path)

    app = Flask('Personal Wiki')
    wiki_page_view = WikiView.as_view(name='wiki_page_view',
                                      path_manager=path_manager,
                                      page_renderer=page_renderer,
                                      breadcrumb_renderer=breadcrumb_renderer)
    static_page_view = StaticView.as_view(name='static_page_view',
                                          path_manager=path_manager)
    app.add_url_rule(rule=BASE_PAGE_URL,
                     view_func=wiki_page_view,
                     defaults={'path': ''})
Example #3
0
class TestGitWikiPathUrls(unittest.TestCase):
    def setUp(self):
        self.temp_dir = tempfile.TemporaryDirectory("TestDownloadToday", "")
        temp_folder = self.temp_dir.name
        self.path_manager = PathManager(temp_folder)

    def tearDown(self):
        self.temp_dir.cleanup()

    def test_folder_with_index(self):
        url = '/toto/tutu/'
        self.ensure_file_presence(url + 'index.md')
        path_info = self.path_manager.get_path_info_from_url(url)
        print("Path = " + path_info.path_on_disk)
        self.assertEqual(os.path.join(self.temp_dir.name, url[1:], 'index.md'),
                         path_info.path_on_disk)

    def test_folder_without_index(self):
        url = '/toto/tutu-no-index/'
        self.ensure_file_presence(url + 'no-index')
        path_info = self.path_manager.get_path_info_from_url(url)
        self.assertEqual(PathNature.folder_without_index, path_info.pathNature)

    def test_root_page(self):
        url = ''
        self.ensure_file_presence('index.md')
        path_info = self.path_manager.get_path_info_from_url(url)
        self.assertEqual(PathNature.folder_with_index, path_info.pathNature)
        self.assertEqual(os.path.join(self.temp_dir.name, 'index.md'),
                         path_info.path_on_disk)

    def test_page(self):
        url = "/toto/tutu"
        self.ensure_file_presence(url + '.md')
        path_info = self.path_manager.get_path_info_from_url(url)
        self.assertEqual(os.path.join(self.temp_dir.name, url[1:] + '.md'),
                         path_info.path_on_disk)

    def test_page_not_found(self):
        url = '/toto/tutu-not-found'
        path_info = self.path_manager.get_path_info_from_url(url)
        self.assertEqual(PathNature.not_found, path_info.pathNature)

    def test_page_with_space(self):
        url = '/toto/tu%20tu'
        decoded_url = '/toto/tu tu'
        self.ensure_file_presence(decoded_url + '.md')
        path_info = self.path_manager.get_path_info_from_url(url)
        self.assertEqual(
            os.path.join(self.temp_dir.name, decoded_url[1:] + '.md'),
            path_info.path_on_disk)

    def test_other_resource(self):
        url = '/test.jpg'
        self.ensure_file_presence(url[1:])
        path_info = self.path_manager.get_path_info_from_url(url)
        print("Path = " + path_info.path_on_disk)
        self.assertEqual(os.path.join(self.temp_dir.name, url),
                         path_info.path_on_disk)

    def test_other_resource_not_found(self):
        url = '/test-not-found.jpg'
        path_info = self.path_manager.get_path_info_from_url(url)
        self.assertEqual(PathNature.other_resource_not_found,
                         path_info.pathNature)

    def ensure_file_presence(self, file_path):
        relative_file_path = file_path
        if file_path[0] == '/':
            relative_file_path = file_path[1:]

        full_path = os.path.join(self.temp_dir.name, relative_file_path)
        print('Temp dir : #' + self.temp_dir.name + '#')
        print('About to create : #' + full_path + '#')
        basedir = os.path.dirname(full_path)
        if not os.path.exists(basedir):
            os.makedirs(basedir)
        with open(full_path, 'a'):
            os.utime(full_path, None)
Example #4
0
 def setUp(self):
     self.temp_dir = tempfile.TemporaryDirectory("TestDownloadToday", "")
     self.path_manager = PathManager(self.temp_dir)
Example #5
0
 def setUp(self):
     self.temp_dir = tempfile.TemporaryDirectory("TestDownloadToday", "")
     temp_folder = self.temp_dir.name
     self.path_manager = PathManager(temp_folder)