Compare commits
30 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8badc92f9 | ||
|
|
3d1b716d6b | ||
|
|
1a3e4c83a4 | ||
|
|
48c68670dc | ||
|
|
af99b49969 | ||
|
|
096c5c23ec | ||
|
|
a87c3cbd13 | ||
|
|
e934ea599c | ||
|
|
b341e7b008 | ||
|
|
a2222ee855 | ||
|
|
a994a1d3bd | ||
|
|
1a7a02349c | ||
|
|
29b42e8133 | ||
|
|
842f8b5684 | ||
|
|
69efc634ed | ||
|
|
8ca3859069 | ||
|
|
5e9b53b4c1 | ||
|
|
2a2e45aecf | ||
|
|
d03570c210 | ||
|
|
afbd063341 | ||
|
|
7b45c01820 | ||
|
|
3a1ededbfc | ||
|
|
117a1debbb | ||
|
|
1fbf42ae6b | ||
|
|
96b7f92dbf | ||
|
|
5b7a65724a | ||
|
|
824d1343cf | ||
|
|
76b6658cbb | ||
|
|
739e12d96b | ||
|
|
09cb20d8bf |
7 changed files with 532 additions and 10 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,2 +1,3 @@
|
|||
/pdfkit-0.4.1.tar.gz
|
||||
/pdfkit-0.5.0.zip
|
||||
/pdfkit-0.6.1.tar.gz
|
||||
|
|
|
|||
1
6f1077dbae22863390915b6f69c8ec77f7c4a83f_example.css
Normal file
1
6f1077dbae22863390915b6f69c8ec77f7c4a83f_example.css
Normal file
|
|
@ -0,0 +1 @@
|
|||
body { font-size: 80px; }
|
||||
7
6f1077dbae22863390915b6f69c8ec77f7c4a83f_example.html
Normal file
7
6f1077dbae22863390915b6f69c8ec77f7c4a83f_example.html
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Oh Hai!</h1>
|
||||
</body>
|
||||
</html>
|
||||
1
6f1077dbae22863390915b6f69c8ec77f7c4a83f_example2.css
Normal file
1
6f1077dbae22863390915b6f69c8ec77f7c4a83f_example2.css
Normal file
|
|
@ -0,0 +1 @@
|
|||
a { color: blue; }
|
||||
412
6f1077dbae22863390915b6f69c8ec77f7c4a83f_pdfkit-tests.py
Normal file
412
6f1077dbae22863390915b6f69c8ec77f7c4a83f_pdfkit-tests.py
Normal file
|
|
@ -0,0 +1,412 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
import io
|
||||
import sys
|
||||
import codecs
|
||||
import unittest
|
||||
|
||||
|
||||
if sys.version_info[0] == 2 and sys.version_info[1] == 7:
|
||||
unittest.TestCase.assertRegex = unittest.TestCase.assertRegexpMatches
|
||||
|
||||
|
||||
#Prepend ../ to PYTHONPATH so that we can import PDFKIT form there.
|
||||
TESTS_ROOT = os.path.abspath(os.path.dirname(__file__))
|
||||
sys.path.insert(0, os.path.realpath(os.path.join(TESTS_ROOT, '..')))
|
||||
|
||||
import pdfkit
|
||||
|
||||
|
||||
class TestPDFKitInitialization(unittest.TestCase):
|
||||
"""Test init"""
|
||||
|
||||
def test_html_source(self):
|
||||
r = pdfkit.PDFKit('<h1>Oh hai</h1>', 'string')
|
||||
self.assertTrue(r.source.isString())
|
||||
|
||||
def test_url_source(self):
|
||||
r = pdfkit.PDFKit('http://ya.ru', 'url')
|
||||
self.assertTrue(r.source.isUrl())
|
||||
|
||||
def test_file_source(self):
|
||||
r = pdfkit.PDFKit('fixtures/example.html', 'file')
|
||||
self.assertTrue(r.source.isFile())
|
||||
|
||||
def test_file_object_source(self):
|
||||
with open('fixtures/example.html') as fl:
|
||||
r = pdfkit.PDFKit(fl, 'file')
|
||||
self.assertTrue(r.source.isFileObj())
|
||||
|
||||
def test_file_source_with_path(self):
|
||||
r = pdfkit.PDFKit('test', 'string')
|
||||
with io.open('fixtures/example.css') as f:
|
||||
self.assertTrue(r.source.isFile(path=f))
|
||||
with codecs.open('fixtures/example.css', encoding='UTF-8') as f:
|
||||
self.assertTrue(r.source.isFile(path=f))
|
||||
|
||||
def test_options_parsing(self):
|
||||
r = pdfkit.PDFKit('html', 'string', options={'page-size': 'Letter'})
|
||||
test_command = r.command('test')
|
||||
idx = test_command.index('--page-size') # Raise exception in case of not found
|
||||
self.assertTrue(test_command[idx+1] == 'Letter')
|
||||
|
||||
def test_options_parsing_with_dashes(self):
|
||||
r = pdfkit.PDFKit('html', 'string', options={'--page-size': 'Letter'})
|
||||
|
||||
test_command = r.command('test')
|
||||
idx = test_command.index('--page-size') # Raise exception in case of not found
|
||||
self.assertTrue(test_command[idx+1] == 'Letter')
|
||||
|
||||
def test_options_parsing_with_tuple(self):
|
||||
options = {
|
||||
'--custom-header': [
|
||||
('Accept-Encoding','gzip')
|
||||
]
|
||||
}
|
||||
r = pdfkit.PDFKit('html', 'string', options=options)
|
||||
command = r.command()
|
||||
idx1 = command.index('--custom-header') # Raise exception in case of not found
|
||||
self.assertTrue(command[idx1 + 1] == 'Accept-Encoding')
|
||||
self.assertTrue(command[idx1 + 2] == 'gzip')
|
||||
|
||||
def test_options_parsing_with_tuple_no_dashes(self):
|
||||
options = {
|
||||
'custom-header': [
|
||||
('Accept-Encoding','gzip')
|
||||
]
|
||||
}
|
||||
r = pdfkit.PDFKit('html', 'string', options=options)
|
||||
command = r.command()
|
||||
idx1 = command.index('--custom-header') # Raise exception in case of not found
|
||||
self.assertTrue(command[idx1 + 1] == 'Accept-Encoding')
|
||||
self.assertTrue(command[idx1 + 2] == 'gzip')
|
||||
|
||||
def test_repeatable_options(self):
|
||||
roptions = {
|
||||
'--page-size': 'Letter',
|
||||
'cookies': [
|
||||
('test_cookie1','cookie_value1'),
|
||||
('test_cookie2','cookie_value2'),
|
||||
]
|
||||
}
|
||||
|
||||
r = pdfkit.PDFKit('html', 'string', options=roptions)
|
||||
|
||||
test_command = r.command('test')
|
||||
|
||||
idx1 = test_command.index('--page-size') # Raise exception in case of not found
|
||||
self.assertTrue(test_command[idx1 + 1] == 'Letter')
|
||||
|
||||
self.assertTrue(test_command.count('--cookies') == 2)
|
||||
|
||||
idx2 = test_command.index('--cookies')
|
||||
self.assertTrue(test_command[idx2 + 1] == 'test_cookie1')
|
||||
self.assertTrue(test_command[idx2 + 2] == 'cookie_value1')
|
||||
|
||||
idx3 = test_command.index('--cookies', idx2 + 2)
|
||||
self.assertTrue(test_command[idx3 + 1] == 'test_cookie2')
|
||||
self.assertTrue(test_command[idx3 + 2] == 'cookie_value2')
|
||||
|
||||
def test_custom_configuration(self):
|
||||
conf = pdfkit.configuration()
|
||||
self.assertEqual('pdfkit-', conf.meta_tag_prefix)
|
||||
conf = pdfkit.configuration(meta_tag_prefix='prefix-')
|
||||
self.assertEqual('prefix-', conf.meta_tag_prefix)
|
||||
with self.assertRaises(IOError):
|
||||
conf = pdfkit.configuration(wkhtmltopdf='wrongpath')
|
||||
|
||||
|
||||
class TestPDFKitCommandGeneration(unittest.TestCase):
|
||||
"""Test command() method"""
|
||||
|
||||
def test_command_construction(self):
|
||||
r = pdfkit.PDFKit('html', 'string', options={'page-size': 'Letter', 'toc-l1-font-size': 12})
|
||||
command = r.command()
|
||||
self.assertEqual(command[0], r.wkhtmltopdf)
|
||||
self.assertEqual(command[command.index('--page-size') + 1], 'Letter')
|
||||
self.assertEqual(command[command.index('--toc-l1-font-size') + 1], '12')
|
||||
|
||||
def test_lists_of_input_args(self):
|
||||
urls = ['http://ya.ru', 'http://google.com']
|
||||
paths = ['fixtures/example.html', 'fixtures/example.html']
|
||||
r = pdfkit.PDFKit(urls, 'url')
|
||||
r2 = pdfkit.PDFKit(paths, 'file')
|
||||
cmd = r.command()
|
||||
cmd2 = r2.command()
|
||||
self.assertEqual(cmd[-3:], ['http://ya.ru', 'http://google.com', '-'])
|
||||
self.assertEqual(cmd2[-3:], ['fixtures/example.html', 'fixtures/example.html', '-'])
|
||||
|
||||
def test_read_source_from_stdin(self):
|
||||
r = pdfkit.PDFKit('html', 'string')
|
||||
self.assertEqual(r.command()[-2:], ['-', '-'])
|
||||
|
||||
def test_url_in_command(self):
|
||||
r = pdfkit.PDFKit('http://ya.ru', 'url')
|
||||
self.assertEqual(r.command()[-2:], ['http://ya.ru', '-'])
|
||||
|
||||
def test_file_path_in_command(self):
|
||||
path = 'fixtures/example.html'
|
||||
r = pdfkit.PDFKit(path, 'file')
|
||||
self.assertEqual(r.command()[-2:], [path, '-'])
|
||||
|
||||
def test_output_path(self):
|
||||
out = '/test/test2/out.pdf'
|
||||
r = pdfkit.PDFKit('html', 'string')
|
||||
self.assertEqual(r.command(out)[-1:], ['/test/test2/out.pdf'])
|
||||
|
||||
def test_pdfkit_meta_tags(self):
|
||||
body = """
|
||||
<html>
|
||||
<head>
|
||||
<meta name="pdfkit-page-size" content="Legal"/>
|
||||
<meta name="pdfkit-orientation" content="Landscape"/>
|
||||
</head>
|
||||
"""
|
||||
|
||||
r = pdfkit.PDFKit(body, 'string')
|
||||
command = r.command()
|
||||
self.assertEqual(command[command.index('--page-size') + 1], 'Legal')
|
||||
self.assertEqual(command[command.index('--orientation') + 1], 'Landscape')
|
||||
|
||||
def test_pdfkit_meta_tags_in_bad_markup(self):
|
||||
body = """
|
||||
<html>
|
||||
<head>
|
||||
<meta name="pdfkit-page-size" content="Legal"/>
|
||||
<meta name="pdfkit-orientation" content="Landscape"/>
|
||||
</head>
|
||||
<br>
|
||||
</html>
|
||||
"""
|
||||
|
||||
r = pdfkit.PDFKit(body, 'string')
|
||||
command = r.command()
|
||||
self.assertEqual(command[command.index('--page-size') + 1], 'Legal')
|
||||
self.assertEqual(command[command.index('--orientation') + 1], 'Landscape')
|
||||
|
||||
def test_skip_nonpdfkit_tags(self):
|
||||
body = """
|
||||
<html>
|
||||
<head>
|
||||
<meta name="test-page-size" content="Legal"/>
|
||||
<meta name="pdfkit-orientation" content="Landscape"/>
|
||||
</head>
|
||||
<br>
|
||||
</html>
|
||||
"""
|
||||
|
||||
r = pdfkit.PDFKit(body, 'string')
|
||||
command = r.command()
|
||||
self.assertEqual(command[command.index('--orientation') + 1], 'Landscape')
|
||||
|
||||
def test_toc_handling_without_options(self):
|
||||
r = pdfkit.PDFKit('hmtl', 'string', toc={'xsl-style-sheet': 'test.xsl'})
|
||||
self.assertEqual(r.command()[1], 'toc')
|
||||
self.assertEqual(r.command()[2], '--xsl-style-sheet')
|
||||
|
||||
def test_toc_with_options(self):
|
||||
options = {
|
||||
'page-size': 'Letter',
|
||||
'margin-top': '0.75in',
|
||||
'margin-right': '0.75in',
|
||||
'margin-bottom': '0.75in',
|
||||
'margin-left': '0.75in',
|
||||
'encoding': "UTF-8"
|
||||
}
|
||||
r = pdfkit.PDFKit('html', 'string', options=options, toc={'xsl-style-sheet': 'test.xsl'})
|
||||
|
||||
command = r.command()
|
||||
|
||||
self.assertEqual(command[1 + len(options) * 2], 'toc')
|
||||
self.assertEqual(command[1 + len(options) * 2 + 1], '--xsl-style-sheet')
|
||||
|
||||
def test_cover_without_options(self):
|
||||
r = pdfkit.PDFKit('html', 'string', cover='test.html')
|
||||
|
||||
command = r.command()
|
||||
|
||||
self.assertEqual(command[1], 'cover')
|
||||
self.assertEqual(command[2], 'test.html')
|
||||
|
||||
def test_cover_with_options(self):
|
||||
options = {
|
||||
'page-size': 'Letter',
|
||||
'margin-top': '0.75in',
|
||||
'margin-right': '0.75in',
|
||||
'margin-bottom': '0.75in',
|
||||
'margin-left': '0.75in',
|
||||
'encoding': "UTF-8"
|
||||
}
|
||||
r = pdfkit.PDFKit('html', 'string', options=options, cover='test.html')
|
||||
|
||||
command = r.command()
|
||||
|
||||
self.assertEqual(command[1 + len(options) * 2], 'cover')
|
||||
self.assertEqual(command[1 + len(options) * 2 + 1], 'test.html')
|
||||
|
||||
def test_cover_and_toc(self):
|
||||
options = {
|
||||
'page-size': 'Letter',
|
||||
'margin-top': '0.75in',
|
||||
'margin-right': '0.75in',
|
||||
'margin-bottom': '0.75in',
|
||||
'margin-left': '0.75in',
|
||||
'encoding': "UTF-8"
|
||||
}
|
||||
r = pdfkit.PDFKit('html', 'string', options=options, toc={'xsl-style-sheet': 'test.xsl'}, cover='test.html')
|
||||
command = r.command()
|
||||
self.assertEqual(command[-7:], ['toc', '--xsl-style-sheet', 'test.xsl', 'cover', 'test.html', '-', '-'])
|
||||
|
||||
def test_cover_and_toc_cover_first(self):
|
||||
options = {
|
||||
'page-size': 'Letter',
|
||||
'margin-top': '0.75in',
|
||||
'margin-right': '0.75in',
|
||||
'margin-bottom': '0.75in',
|
||||
'margin-left': '0.75in',
|
||||
'encoding': "UTF-8"
|
||||
}
|
||||
r = pdfkit.PDFKit('html', 'string', options=options, toc={'xsl-style-sheet': 'test.xsl'}, cover='test.html', cover_first=True)
|
||||
command = r.command()
|
||||
self.assertEqual(command[-7:], ['cover', 'test.html', 'toc', '--xsl-style-sheet', 'test.xsl', '-', '-'])
|
||||
|
||||
def test_outline_options(self):
|
||||
options = {
|
||||
'outline': None,
|
||||
'outline-depth': 1
|
||||
}
|
||||
|
||||
r = pdfkit.PDFKit('ya.ru', 'url', options=options)
|
||||
cmd = r.command()
|
||||
#self.assertEqual(cmd[1:], ['--outline', '--outline-depth', '1', 'ya.ru', '-'])
|
||||
self.assertIn('--outline', cmd)
|
||||
self.assertEqual(cmd[cmd.index('--outline-depth') + 1], '1')
|
||||
|
||||
def test_filter_empty_and_none_values_in_opts(self):
|
||||
options = {
|
||||
'outline': '',
|
||||
'footer-line': None,
|
||||
'quiet': False
|
||||
}
|
||||
|
||||
r = pdfkit.PDFKit('html', 'string', options=options)
|
||||
cmd = r.command()
|
||||
self.assertEqual(len(cmd), 6)
|
||||
|
||||
|
||||
class TestPDFKitGeneration(unittest.TestCase):
|
||||
"""Test to_pdf() method"""
|
||||
|
||||
def setUp(self):
|
||||
pass
|
||||
|
||||
def tearDown(self):
|
||||
if os.path.exists('out.pdf'):
|
||||
os.remove('out.pdf')
|
||||
|
||||
def test_pdf_generation(self):
|
||||
r = pdfkit.PDFKit('html', 'string', options={'page-size': 'Letter'})
|
||||
pdf = r.to_pdf('out.pdf')
|
||||
self.assertTrue(pdf)
|
||||
|
||||
def test_raise_error_with_invalid_url(self):
|
||||
r = pdfkit.PDFKit('wrongurl', 'url')
|
||||
with self.assertRaises(IOError):
|
||||
r.to_pdf('out.pdf')
|
||||
|
||||
def test_raise_error_with_invalid_file_path(self):
|
||||
paths = ['frongpath.html', 'wrongpath2.html']
|
||||
with self.assertRaises(IOError):
|
||||
pdfkit.PDFKit('wrongpath.html', 'file')
|
||||
with self.assertRaises(IOError):
|
||||
pdfkit.PDFKit(paths, 'file')
|
||||
|
||||
def test_stylesheet_adding_to_the_head(self):
|
||||
#TODO rewrite this part of pdfkit.py
|
||||
r = pdfkit.PDFKit('<html><head></head><body>Hai!</body></html>', 'string',
|
||||
css='fixtures/example.css')
|
||||
|
||||
with open('fixtures/example.css') as f:
|
||||
css = f.read()
|
||||
|
||||
r._prepend_css('fixtures/example.css')
|
||||
self.assertIn('<style>%s</style>' % css, r.source.to_s())
|
||||
|
||||
def test_stylesheet_adding_without_head_tag(self):
|
||||
r = pdfkit.PDFKit('<html><body>Hai!</body></html>', 'string',
|
||||
options={'quiet': None}, css='fixtures/example.css')
|
||||
|
||||
with open('fixtures/example.css') as f:
|
||||
css = f.read()
|
||||
|
||||
r._prepend_css('fixtures/example.css')
|
||||
self.assertIn('<style>%s</style><html>' % css, r.source.to_s())
|
||||
|
||||
def test_multiple_stylesheets_adding_to_the_head(self):
|
||||
#TODO rewrite this part of pdfkit.py
|
||||
css_files = ['fixtures/example.css', 'fixtures/example2.css']
|
||||
r = pdfkit.PDFKit('<html><head></head><body>Hai!</body></html>', 'string',
|
||||
css=css_files)
|
||||
|
||||
css=[]
|
||||
for css_file in css_files:
|
||||
with open(css_file) as f:
|
||||
css.append(f.read())
|
||||
|
||||
r._prepend_css(css_files)
|
||||
self.assertIn('<style>%s</style>' % "\n".join(css), r.source.to_s())
|
||||
|
||||
def test_multiple_stylesheet_adding_without_head_tag(self):
|
||||
css_files = ['fixtures/example.css', 'fixtures/example2.css']
|
||||
r = pdfkit.PDFKit('<html><body>Hai!</body></html>', 'string',
|
||||
options={'quiet': None}, css=css_files)
|
||||
|
||||
css=[]
|
||||
for css_file in css_files:
|
||||
with open(css_file) as f:
|
||||
css.append(f.read())
|
||||
|
||||
r._prepend_css(css_files)
|
||||
self.assertIn('<style>%s</style><html>' % "\n".join(css), r.source.to_s())
|
||||
|
||||
def test_stylesheet_throw_error_when_url(self):
|
||||
r = pdfkit.PDFKit('http://ya.ru', 'url', css='fixtures/example.css')
|
||||
|
||||
with self.assertRaises(r.ImproperSourceError):
|
||||
r.to_pdf()
|
||||
|
||||
def test_stylesheet_adding_to_file_with_option(self):
|
||||
css = 'fixtures/example.css'
|
||||
r = pdfkit.PDFKit('fixtures/example.html', 'file', css=css)
|
||||
self.assertEqual(r.css, css)
|
||||
r._prepend_css(css)
|
||||
self.assertIn('font-size', r.source.to_s())
|
||||
|
||||
def test_wkhtmltopdf_error_handling(self):
|
||||
r = pdfkit.PDFKit('clearlywrongurl.asdf', 'url')
|
||||
with self.assertRaises(IOError):
|
||||
r.to_pdf()
|
||||
|
||||
def test_pdf_generation_from_file_like(self):
|
||||
with open('fixtures/example.html', 'r') as f:
|
||||
r = pdfkit.PDFKit(f, 'file')
|
||||
output = r.to_pdf()
|
||||
self.assertEqual(output[:4].decode('utf-8'), '%PDF')
|
||||
|
||||
def test_raise_error_with_wrong_css_path(self):
|
||||
css = 'fixtures/wrongpath.css'
|
||||
r = pdfkit.PDFKit('fixtures/example.html', 'file', css=css)
|
||||
with self.assertRaises(IOError):
|
||||
r.to_pdf()
|
||||
|
||||
def test_raise_error_if_bad_wkhtmltopdf_option(self):
|
||||
r = pdfkit.PDFKit('<html><body>Hai!</body></html>', 'string',
|
||||
options={'bad-option': None})
|
||||
with self.assertRaises(IOError) as cm:
|
||||
r.to_pdf()
|
||||
|
||||
raised_exception = cm.exception
|
||||
self.assertRegex(str(raised_exception), '^wkhtmltopdf exited with non-zero code 1. error:\nUnknown long argument --bad-option\r?\n')
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
@ -1,20 +1,27 @@
|
|||
%global pypi_name pdfkit
|
||||
%global commit0 6f1077dbae22863390915b6f69c8ec77f7c4a83f
|
||||
%global testurl https://raw.githubusercontent.com/JazzCore/python-%{pypi_name}/%{commit0}/tests/
|
||||
|
||||
Name: python-%{pypi_name}
|
||||
Version: 0.5.0
|
||||
Release: 13%{?dist}
|
||||
Version: 0.6.1
|
||||
Release: 22%{?dist}
|
||||
Summary: Wkhtmltopdf python wrapper
|
||||
|
||||
License: MIT
|
||||
URL: https://github.com/JazzCore/python-pdfkit
|
||||
Source0: https://pypi.python.org/packages/source/p/%{pypi_name}/%{pypi_name}-%{version}.zip
|
||||
URL: https://github.com/JazzCore/python-%{pypi_name}
|
||||
Source0: %{pypi_source}
|
||||
|
||||
BuildArch: noarch
|
||||
# tests taken from github due to not part of pypi
|
||||
Source10: %{testurl}/%{pypi_name}-tests.py#/%{commit0}_pdfkit-tests.py
|
||||
Source11: %{testurl}/fixtures/example.css#/%{commit0}_example.css
|
||||
Source12: %{testurl}/fixtures/example.html#/%{commit0}_example.html
|
||||
Source13: %{testurl}/fixtures/example2.css#/%{commit0}_example2.css
|
||||
|
||||
BuildArch: noarch
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3
|
||||
Requires: python3
|
||||
Requires: wkhtmltopdf
|
||||
BuildRequires: wkhtmltopdf
|
||||
|
||||
Requires: wkhtmltopdf
|
||||
|
||||
|
|
@ -26,6 +33,7 @@ This is an adapted version of Ruby PDFKit.
|
|||
%package -n python3-%{pypi_name}
|
||||
Summary: Wkhtmltopdf python wrapper
|
||||
%{?python_provide:%python_provide python3-%{pypi_name}}
|
||||
|
||||
%description -n python3-%{pypi_name}
|
||||
Python 3 wrapper for wkhtmltopdf utility to convert HTML to PDF using Webkit.
|
||||
|
||||
|
|
@ -42,14 +50,106 @@ rm -rf %{pypi_name}.egg-info
|
|||
%install
|
||||
%py3_install
|
||||
|
||||
%check
|
||||
mkdir -p tests/fixtures
|
||||
cp -t tests %{SOURCE10}
|
||||
cp -t tests/fixtures %{SOURCE11} %{SOURCE12} %{SOURCE13}
|
||||
find tests -type f |\
|
||||
while read a; do b=$(echo $a |\
|
||||
sed -r 's/%{commit0}_//'); \
|
||||
mv -v $a $b; done
|
||||
cd tests
|
||||
%{__python3} pdfkit-tests.py
|
||||
|
||||
%files -n python3-%{pypi_name}
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license LICENSE
|
||||
%doc README.rst HISTORY.rst
|
||||
%{python3_sitelib}/%{pypi_name}
|
||||
%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
|
||||
%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info
|
||||
|
||||
%changelog
|
||||
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 0.6.1-22
|
||||
- Rebuilt for Python 3.14.0rc3 bytecode
|
||||
|
||||
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 0.6.1-21
|
||||
- Rebuilt for Python 3.14.0rc2 bytecode
|
||||
|
||||
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-20
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Mon Jun 02 2025 Python Maint <python-maint@redhat.com> - 0.6.1-19
|
||||
- Rebuilt for Python 3.14
|
||||
|
||||
* Sat Jan 18 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-18
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Mon Jan 06 2025 Miro Hrončok <mhroncok@redhat.com> - 0.6.1-17
|
||||
- Fix build with setuptools 74+
|
||||
- Fixes: rhzb#2319690
|
||||
|
||||
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-16
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 0.6.1-15
|
||||
- Rebuilt for Python 3.13
|
||||
|
||||
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 0.6.1-11
|
||||
- Rebuilt for Python 3.12
|
||||
|
||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 0.6.1-8
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 0.6.1-5
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 0.6.1-2
|
||||
- Rebuilt for Python 3.9
|
||||
|
||||
* Mon Mar 16 2020 Raphael Groner <projects.rg@smart.ms> - 0.6.1-1
|
||||
- new version
|
||||
|
||||
* Mon Mar 16 2020 Raphael Groner <projects.rg@smart.ms> - 0.5.0-18
|
||||
- add tests
|
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-17
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 0.5.0-16
|
||||
- Rebuilt for Python 3.8.0rc1 (#1748018)
|
||||
|
||||
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 0.5.0-15
|
||||
- Rebuilt for Python 3.8
|
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
5cbe42c43d463f0794272a01e37a553f pdfkit-0.5.0.zip
|
||||
SHA512 (pdfkit-0.6.1.tar.gz) = b3ac1016d1c01a2a196f567b9b672caca10f564cc6a62122691d34c3cbbf143f6a846bfba26c3474e9c0296977f0d30c0b5af13b3321ab207b787df3cba12e5d
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue