Gitub actions (#53)
* push action Initial scratch pad * #26 requirements.txt added * #26 unit test failures fixes * #26 install theme in action python3 compatible test * #26 test failure fixes based on new pelican * #26 python3 test fixes
This commit is contained in:
parent
a31ff4e2c9
commit
b7c3285563
6 changed files with 78 additions and 10 deletions
28
.github/workflows/main.yml
vendored
Normal file
28
.github/workflows/main.yml
vendored
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
name: Python package
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
strategy:
|
||||||
|
max-parallel: 4
|
||||||
|
matrix:
|
||||||
|
python-version: [2.7, 3.5, 3.6, 3.7]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
uses: actions/setup-python@v1
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install -r tests/requirements.txt
|
||||||
|
pelican-themes -i ../attila
|
||||||
|
- name: Test with pytest
|
||||||
|
run: |
|
||||||
|
cd tests
|
||||||
|
pytest
|
|
@ -115,6 +115,18 @@ COLOR_SCHEME_CSS = 'github.css'
|
||||||
|
|
||||||
CSS_OVERRIDE = ['assets/css/myblog.css']
|
CSS_OVERRIDE = ['assets/css/myblog.css']
|
||||||
|
|
||||||
|
# Jinja config - Pelican 4
|
||||||
|
JINJA_ENVIRONMENT = {
|
||||||
|
'extensions' :[
|
||||||
|
'jinja2.ext.loopcontrols',
|
||||||
|
'jinja2.ext.i18n',
|
||||||
|
'jinja2.ext.with_',
|
||||||
|
'jinja2.ext.do'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
JINJA_FILTERS = {'max': max}
|
||||||
|
|
||||||
# AUTHORS_BIO = {
|
# AUTHORS_BIO = {
|
||||||
# "arul": {
|
# "arul": {
|
||||||
# "name": "Arul",
|
# "name": "Arul",
|
||||||
|
|
3
tests/requirements.txt
Normal file
3
tests/requirements.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
pelican
|
||||||
|
BeautifulSoup4
|
||||||
|
pytest
|
|
@ -246,10 +246,15 @@ class BaseTest(object):
|
||||||
def gen_article_and_html_from_rst(self, rstPath):
|
def gen_article_and_html_from_rst(self, rstPath):
|
||||||
content, metadata = self.reader.read(rstPath)
|
content, metadata = self.reader.read(rstPath)
|
||||||
article = Article(content=content, metadata=metadata)
|
article = Article(content=content, metadata=metadata)
|
||||||
generator = ArticlesGenerator( context=self.settings.copy(), settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
|
context = self.settings.copy()
|
||||||
|
context['generated_content'] = {}
|
||||||
|
context['static_links'] = set()
|
||||||
|
context['static_content'] = {}
|
||||||
|
context['localsiteurl'] = self.settings['SITEURL']
|
||||||
|
generator = ArticlesGenerator( context=context, settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
|
||||||
generator.generate_context()
|
generator.generate_context()
|
||||||
f = lambda a: True if (a.slug == article.slug) else False
|
f = lambda a: True if (a.slug == article.slug) else False
|
||||||
result = filter(f, generator.context["articles"])[0]
|
result = list(filter(f, generator.context["articles"]))[0]
|
||||||
self.writer.write_file(
|
self.writer.write_file(
|
||||||
result.save_as, generator.get_template('article'),
|
result.save_as, generator.get_template('article'),
|
||||||
generator.context, article=result)
|
generator.context, article=result)
|
||||||
|
@ -259,10 +264,15 @@ class BaseTest(object):
|
||||||
def gen_page_and_html_from_rst(self, rstPath):
|
def gen_page_and_html_from_rst(self, rstPath):
|
||||||
content, metadata = self.reader.read(rstPath)
|
content, metadata = self.reader.read(rstPath)
|
||||||
page = Page(content=content, metadata=metadata)
|
page = Page(content=content, metadata=metadata)
|
||||||
generator = PagesGenerator( context=self.settings.copy(), settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
|
context = self.settings.copy()
|
||||||
|
context['generated_content'] = {}
|
||||||
|
context['static_links'] = set()
|
||||||
|
context['static_content'] = {}
|
||||||
|
context['localsiteurl'] = self.settings['SITEURL']
|
||||||
|
generator = PagesGenerator( context=context, settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
|
||||||
generator.generate_context()
|
generator.generate_context()
|
||||||
f = lambda a: True if (a.slug == page.slug) else False
|
f = lambda a: True if (a.slug == page.slug) else False
|
||||||
result = filter(f, generator.context["pages"])[0]
|
result = list(filter(f, generator.context["pages"]))[0]
|
||||||
self.writer.write_file(
|
self.writer.write_file(
|
||||||
result.save_as, generator.get_template('page'),
|
result.save_as, generator.get_template('page'),
|
||||||
generator.context, page=result)
|
generator.context, page=result)
|
||||||
|
@ -270,7 +280,12 @@ class BaseTest(object):
|
||||||
return (result, soup)
|
return (result, soup)
|
||||||
|
|
||||||
def gen_tag_and_html_from_name(self, name):
|
def gen_tag_and_html_from_name(self, name):
|
||||||
generator = ArticlesGenerator( context=self.settings.copy(), settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
|
context = self.settings.copy()
|
||||||
|
context['generated_content'] = {}
|
||||||
|
context['static_links'] = set()
|
||||||
|
context['static_content'] = {}
|
||||||
|
context['localsiteurl'] = self.settings['SITEURL']
|
||||||
|
generator = ArticlesGenerator( context=context, settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
|
||||||
generator.generate_context()
|
generator.generate_context()
|
||||||
generator.generate_tags(self.writer.write_file)
|
generator.generate_tags(self.writer.write_file)
|
||||||
selectedTag = None
|
selectedTag = None
|
||||||
|
@ -283,7 +298,12 @@ class BaseTest(object):
|
||||||
return (selectedTag, soup)
|
return (selectedTag, soup)
|
||||||
|
|
||||||
def gen_category_and_html_from_name(self, name):
|
def gen_category_and_html_from_name(self, name):
|
||||||
generator = ArticlesGenerator( context=self.settings.copy(), settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
|
context = self.settings.copy()
|
||||||
|
context['generated_content'] = {}
|
||||||
|
context['static_links'] = set()
|
||||||
|
context['static_content'] = {}
|
||||||
|
context['localsiteurl'] = self.settings['SITEURL']
|
||||||
|
generator = ArticlesGenerator( context=context, settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
|
||||||
generator.generate_context()
|
generator.generate_context()
|
||||||
generator.generate_categories(self.writer.write_file)
|
generator.generate_categories(self.writer.write_file)
|
||||||
selectedCategory = None
|
selectedCategory = None
|
||||||
|
@ -296,7 +316,12 @@ class BaseTest(object):
|
||||||
return (selectedCategory, soup)
|
return (selectedCategory, soup)
|
||||||
|
|
||||||
def gen_author_and_html_from_name(self, name):
|
def gen_author_and_html_from_name(self, name):
|
||||||
generator = ArticlesGenerator( context=self.settings.copy(), settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
|
context = self.settings.copy()
|
||||||
|
context['generated_content'] = {}
|
||||||
|
context['static_links'] = set()
|
||||||
|
context['static_content'] = {}
|
||||||
|
context['localsiteurl'] = self.settings['SITEURL']
|
||||||
|
generator = ArticlesGenerator( context=context, settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
|
||||||
generator.generate_context()
|
generator.generate_context()
|
||||||
generator.generate_authors(self.writer.write_file)
|
generator.generate_authors(self.writer.write_file)
|
||||||
selectedAuthor = None
|
selectedAuthor = None
|
||||||
|
|
|
@ -10,7 +10,7 @@ def tearDownModule():
|
||||||
print("teardown module")
|
print("teardown module")
|
||||||
try:
|
try:
|
||||||
rmtree(OUTPUT_DIR)
|
rmtree(OUTPUT_DIR)
|
||||||
except OSError, e:
|
except OSError as e:
|
||||||
print ("Error: %s - %s." % (e.filename,e.strerror))
|
print ("Error: %s - %s." % (e.filename,e.strerror))
|
||||||
|
|
||||||
class AuthorSocialLinksTest(unittest.TestCase, BaseTest):
|
class AuthorSocialLinksTest(unittest.TestCase, BaseTest):
|
||||||
|
|
|
@ -13,7 +13,7 @@ def tearDownModule():
|
||||||
print("teardown module")
|
print("teardown module")
|
||||||
try:
|
try:
|
||||||
rmtree(OUTPUT_DIR)
|
rmtree(OUTPUT_DIR)
|
||||||
except OSError, e:
|
except OSError as e:
|
||||||
print ("Error: %s - %s." % (e.filename,e.strerror))
|
print ("Error: %s - %s." % (e.filename,e.strerror))
|
||||||
|
|
||||||
class ArticleCoverImageTest(unittest.TestCase, BaseTest):
|
class ArticleCoverImageTest(unittest.TestCase, BaseTest):
|
||||||
|
@ -59,7 +59,7 @@ class ArticleCoverImageTest(unittest.TestCase, BaseTest):
|
||||||
def test_article_theme_cover(self):
|
def test_article_theme_cover(self):
|
||||||
rstPath="content/article_without_cover.rst"
|
rstPath="content/article_without_cover.rst"
|
||||||
result, soup = self.gen_article_and_html_from_rst(rstPath)
|
result, soup = self.gen_article_and_html_from_rst(rstPath)
|
||||||
selected = soup.find(id="blog-header")
|
selected = soup.find(id="post-header")
|
||||||
# Assertion
|
# Assertion
|
||||||
self.assertTrue("class" not in selected)
|
self.assertTrue("class" not in selected)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue