Реализовал препроцессор включения текста
This commit is contained in:
parent
dea4af4339
commit
aef4ee5f20
|
|
@ -15,6 +15,6 @@ class TextInclude:
|
|||
path = info[1]
|
||||
|
||||
content = self.contentProvider.fetchContent(path)
|
||||
text.replace(includeStatement, content)
|
||||
text = text.replace(includeStatement, content)
|
||||
|
||||
return text
|
||||
|
|
@ -0,0 +1 @@
|
|||
sh echo hello from '{@app_name}'
|
||||
|
|
@ -0,0 +1 @@
|
|||
__author__ = 'rzaitov'
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
import unittest
|
||||
from Core.LineConveyor.TextInclude import TextInclude
|
||||
from utils.IncludeProcessor import IncludeProcessor
|
||||
|
||||
|
||||
class MockContentProvider:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def fetchContent(self, path):
|
||||
return """line 1
|
||||
line 2
|
||||
line 3"""
|
||||
|
||||
class TestIncludeText(unittest.TestCase):
|
||||
def setUp(self):
|
||||
includeProcessor = IncludeProcessor()
|
||||
contentProvider = MockContentProvider()
|
||||
self.includeText = TextInclude(includeProcessor, contentProvider)
|
||||
|
||||
def test_includeText(self):
|
||||
text = """
|
||||
bla bla
|
||||
<include 'path1'>
|
||||
another bla
|
||||
<include 'paht2'>
|
||||
yet another bla"""
|
||||
|
||||
processedText = self.includeText.processText(text)
|
||||
|
||||
expected = """
|
||||
bla bla
|
||||
line 1
|
||||
line 2
|
||||
line 3
|
||||
another bla
|
||||
line 1
|
||||
line 2
|
||||
line 3
|
||||
yet another bla"""
|
||||
|
||||
self.assertEqual(expected, processedText)
|
||||
|
|
@ -1,12 +1,15 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
import argparse
|
||||
from Core.FileContentProvider import FileContentProvider
|
||||
from Core.LineConveyor.CommentRemover import CommentRemover
|
||||
from Core.LineConveyor.TextConveyorPreprocessor import TextConveyorPreprocessor
|
||||
from Core.LineConveyor.MacroResolver import MacroResolver
|
||||
from Core.LineConveyor.Stripper import Stripper
|
||||
from Core.LineConveyor.TextInclude import TextInclude
|
||||
from commands.ValueProvider import ValueProvider
|
||||
from utils.BuildConfigProvider import BuildConfigProvider
|
||||
from utils.IncludeProcessor import IncludeProcessor
|
||||
from utils.MacroProcessor import MacroProcessor
|
||||
from utils.SettingsProvider.CmdArgsOverriderSettingsProvider import CmdArgsOverriderSettingsProvider
|
||||
from utils.SettingsProvider.FromFileSettingsProvider import FromFileSettingsProvider
|
||||
|
|
@ -35,8 +38,13 @@ class TaskRunner:
|
|||
self.valueProvider = ValueProvider()
|
||||
macroResolver = MacroResolver(macroProcessor, self.valueProvider)
|
||||
|
||||
includeProcessor = IncludeProcessor()
|
||||
fileContentProvider = FileContentProvider()
|
||||
textInclude = TextInclude(includeProcessor, fileContentProvider)
|
||||
|
||||
self.textPreprocessor = TextConveyorPreprocessor()
|
||||
self.textPreprocessor.addProcessor(macroResolver)
|
||||
self.textPreprocessor.addProcessor(textInclude)
|
||||
|
||||
self.linePreprocessor = TextConveyorPreprocessor()
|
||||
self.linePreprocessor.addProcessor(lineStripper)
|
||||
|
|
|
|||
Loading…
Reference in New Issue