mirror of https://github.com/eyhc1/rendercv.git
update tests
This commit is contained in:
parent
f90357e68e
commit
fa6717fd4f
|
@ -31,6 +31,7 @@ from pydantic_extra_types.color import Color
|
||||||
|
|
||||||
from spellchecker import SpellChecker
|
from spellchecker import SpellChecker
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
# ======================================================================================
|
# ======================================================================================
|
||||||
# HELPERS ==============================================================================
|
# HELPERS ==============================================================================
|
||||||
# ======================================================================================
|
# ======================================================================================
|
||||||
|
@ -96,7 +97,7 @@ def check_spelling(sentence: str) -> str:
|
||||||
if word in dictionary:
|
if word in dictionary:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
logging.warning(
|
logger.warning(
|
||||||
f'The word "{word}" might be misspelled according to the'
|
f'The word "{word}" might be misspelled according to the'
|
||||||
" pyspellchecker."
|
" pyspellchecker."
|
||||||
)
|
)
|
||||||
|
@ -546,14 +547,14 @@ class Event(BaseModel):
|
||||||
end_date_is_provided = True
|
end_date_is_provided = True
|
||||||
|
|
||||||
if date_is_provided and start_date_is_provided and end_date_is_provided:
|
if date_is_provided and start_date_is_provided and end_date_is_provided:
|
||||||
logging.warning(
|
logger.warning(
|
||||||
'"start_date", "end_date" and "date" are all provided in of the'
|
'"start_date", "end_date" and "date" are all provided in of the'
|
||||||
" entries. Therefore, date will be ignored."
|
" entries. Therefore, date will be ignored."
|
||||||
)
|
)
|
||||||
model.date = None
|
model.date = None
|
||||||
|
|
||||||
elif date_is_provided and start_date_is_provided and not end_date_is_provided:
|
elif date_is_provided and start_date_is_provided and not end_date_is_provided:
|
||||||
logging.warning(
|
logger.warning(
|
||||||
'Both "date" and "start_date" is provided in of the entries.'
|
'Both "date" and "start_date" is provided in of the entries.'
|
||||||
' "start_date" will be ignored.'
|
' "start_date" will be ignored.'
|
||||||
)
|
)
|
||||||
|
@ -561,7 +562,7 @@ class Event(BaseModel):
|
||||||
model.end_date = None
|
model.end_date = None
|
||||||
|
|
||||||
elif date_is_provided and end_date_is_provided and not start_date_is_provided:
|
elif date_is_provided and end_date_is_provided and not start_date_is_provided:
|
||||||
logging.warning(
|
logger.warning(
|
||||||
'Both "date" and "end_date" is provided in of the entries. "end_date"'
|
'Both "date" and "end_date" is provided in of the entries. "end_date"'
|
||||||
" will be ignored."
|
" will be ignored."
|
||||||
)
|
)
|
||||||
|
@ -569,7 +570,7 @@ class Event(BaseModel):
|
||||||
model.end_date = None
|
model.end_date = None
|
||||||
|
|
||||||
elif start_date_is_provided and not end_date_is_provided:
|
elif start_date_is_provided and not end_date_is_provided:
|
||||||
logging.warning(
|
logger.warning(
|
||||||
'"start_date" is provided in of the entries, but "end_date" is not.'
|
'"start_date" is provided in of the entries, but "end_date" is not.'
|
||||||
' "end_date" will be set to "present".'
|
' "end_date" will be set to "present".'
|
||||||
)
|
)
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
\begin{tabularx}{\textwidth}{K{<<theme_options.margins.entry_area.left>>} R{<<theme_options.date_and_location_width>>}}
|
\begin{tabularx}{\textwidth}{K{<<theme_options.margins.entry_area.left>>} R{<<theme_options.date_and_location_width>>}}
|
||||||
((* if markdown_url is not none *))
|
((* if markdown_url is not none *))
|
||||||
((* if link_text is not none *))
|
((* if link_text is not none *))
|
||||||
((* set markdown_url = "["+link_text+"]("+ markdown_url|markdown_url_to_url +")" *))
|
((* set markdown_url = "["+link_text+"]("+ markdown_url|markdown_link_to_url +")" *))
|
||||||
\textbf{<<name>>}, <<markdown_url|markdown_to_latex>>
|
\textbf{<<name>>}, <<markdown_url|markdown_to_latex>>
|
||||||
((* else *))
|
((* else *))
|
||||||
\textbf{<<name>>}, <<markdown_url|markdown_to_latex>>
|
\textbf{<<name>>}, <<markdown_url|markdown_to_latex>>
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
|
|
||||||
((* if markdown_url is not none *))
|
((* if markdown_url is not none *))
|
||||||
((* if link_text is not none *))
|
((* if link_text is not none *))
|
||||||
((* set markdown_url = "["+link_text+"]("+ markdown_url|markdown_url_to_url +")" *))
|
((* set markdown_url = "["+link_text+"]("+ markdown_url|markdown_link_to_url +")" *))
|
||||||
\textbf{<<name>>:} <<details>> (<<markdown_url|markdown_to_latex>>)
|
\textbf{<<name>>:} <<details>> (<<markdown_url|markdown_to_latex>>)
|
||||||
((* else *))
|
((* else *))
|
||||||
\textbf{<<name>>:} <<details>> (<<markdown_url|markdown_to_latex>>)
|
\textbf{<<name>>:} <<details>> (<<markdown_url|markdown_to_latex>>)
|
||||||
|
|
|
@ -0,0 +1,321 @@
|
||||||
|
|
||||||
|
\documentclass[10pt, a4paper]{article}
|
||||||
|
|
||||||
|
% Packages:
|
||||||
|
\usepackage[
|
||||||
|
ignoreheadfoot, % set margins without considering header and footer
|
||||||
|
top=1.35 cm, % seperation between body and page edge from the top
|
||||||
|
bottom=1.35 cm, % seperation between body and page edge from the bottom
|
||||||
|
left=1.35 cm, % seperation between body and page edge from the left
|
||||||
|
right=1.35 cm, % seperation between body and page edge from the right
|
||||||
|
% showframe % for debugging
|
||||||
|
]{geometry} % for adjusting page geometry
|
||||||
|
\usepackage{fontspec} % for loading fonts
|
||||||
|
\usepackage[explicit]{titlesec} % for customizing section titles
|
||||||
|
\usepackage{tabularx} % for making tables with fixed width columns
|
||||||
|
\usepackage{array} % tabularx requires this
|
||||||
|
\usepackage[dvipsnames]{xcolor} % for coloring text
|
||||||
|
\definecolor{primaryColor}{RGB}{0, 79, 144} % define primary color
|
||||||
|
\usepackage{enumitem} % for customizing lists
|
||||||
|
\usepackage{fontawesome5} % for using icons
|
||||||
|
\usepackage[
|
||||||
|
pdftitle={John Doe's CV},
|
||||||
|
pdfauthor={John Doe},
|
||||||
|
colorlinks=true,
|
||||||
|
urlcolor=primaryColor
|
||||||
|
]{hyperref} % for links, metadata and bookmarks
|
||||||
|
\usepackage[pscoord]{eso-pic} % for floating text on the page
|
||||||
|
\usepackage{calc} % for calculating lengths
|
||||||
|
|
||||||
|
% Some settings:
|
||||||
|
\pagestyle{empty} % no header or footer
|
||||||
|
\setcounter{secnumdepth}{0} % no section numbering
|
||||||
|
\setlength{\parindent}{0pt} % no indentation
|
||||||
|
\setlength{\topskip}{0pt} % no top skip
|
||||||
|
\pagenumbering{gobble} % no page numbering
|
||||||
|
|
||||||
|
|
||||||
|
\setmainfont{EBGaramond}[
|
||||||
|
Path= fonts/,
|
||||||
|
Extension = .ttf,
|
||||||
|
UprightFont = *-Regular,
|
||||||
|
ItalicFont = *-Italic,
|
||||||
|
BoldFont = *-Bold,
|
||||||
|
BoldItalicFont = *-BoldItalic
|
||||||
|
]
|
||||||
|
|
||||||
|
\titleformat{\section}{
|
||||||
|
% make the font size of the section title large and color it with the primary color
|
||||||
|
\Large\color{primaryColor}
|
||||||
|
}{
|
||||||
|
}{
|
||||||
|
}{
|
||||||
|
% print bold title, give 0.15 cm space and draw a line of 0.8 pt thickness
|
||||||
|
% from the end of the title to the end of the body
|
||||||
|
\textbf{#1}\hspace{0.15cm}\titlerule[0.8pt]
|
||||||
|
}[] % section title formatting
|
||||||
|
|
||||||
|
\titlespacing{\section}{
|
||||||
|
% left space:
|
||||||
|
0pt
|
||||||
|
}{
|
||||||
|
% top space:
|
||||||
|
0.13 cm
|
||||||
|
}{
|
||||||
|
% bottom space:
|
||||||
|
0.13 cm
|
||||||
|
} % section title spacing
|
||||||
|
|
||||||
|
\newcolumntype{L}[1]{
|
||||||
|
>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{#1}
|
||||||
|
} % left-aligned fixed width column type
|
||||||
|
\newcolumntype{R}[1]{
|
||||||
|
>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}p{#1}
|
||||||
|
} % right-aligned fixed width column type
|
||||||
|
\newcolumntype{K}[1]{
|
||||||
|
>{\raggedright\let\newline\\\arraybackslash\hspace{-0.2cm}\hspace{#1}}X
|
||||||
|
} % left-aligned flexible width column type
|
||||||
|
|
||||||
|
\newenvironment{highlights}{
|
||||||
|
\begin{itemize}[
|
||||||
|
topsep=0pt,
|
||||||
|
parsep=0.07 cm,
|
||||||
|
partopsep=0pt,
|
||||||
|
itemsep=0pt,
|
||||||
|
after=\vspace*{-1\baselineskip},
|
||||||
|
leftmargin=0.6 cm + 3pt
|
||||||
|
]
|
||||||
|
}{
|
||||||
|
\end{itemize}
|
||||||
|
} % new environment for highlights
|
||||||
|
|
||||||
|
\newenvironment{header}{
|
||||||
|
\setlength{\topsep}{0pt}\par\kern\topsep\centering\color{primaryColor}\linespread{1.5}
|
||||||
|
}{
|
||||||
|
\par\kern\topsep
|
||||||
|
} % new environment for the header
|
||||||
|
|
||||||
|
\newcommand{\placelastupdatedtext}{% \placetextbox{<horizontal pos>}{<vertical pos>}{<stuff>}
|
||||||
|
\AddToShipoutPictureFG*{% Add <stuff> to current page foreground
|
||||||
|
\put(
|
||||||
|
\LenToUnit{\paperwidth-1.35 cm},
|
||||||
|
\LenToUnit{\paperheight-0.675 cm}
|
||||||
|
){\vtop{{\null}\makebox[0pt][c]{
|
||||||
|
\small\color{gray}\emph{Last updated on October 08, 2023} \hspace{\widthof{Last updated on October 08, 2023}}
|
||||||
|
}}}%
|
||||||
|
}%
|
||||||
|
}%
|
||||||
|
|
||||||
|
\newcommand{\hrefExternal}[2]{\href{#1}{#2\, \raisebox{.1ex}{\footnotesize \faExternalLink*}}} % new command for external links
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
\placelastupdatedtext
|
||||||
|
|
||||||
|
\begin{header}
|
||||||
|
\Huge
|
||||||
|
\textbf{John Doe}
|
||||||
|
|
||||||
|
\normalsize
|
||||||
|
\mbox{{\small\faMapMarker*}\hspace{0.13cm}Geneva, Switzerland}
|
||||||
|
\hspace{0.5cm}
|
||||||
|
\mbox{\href{tel:+905413769286}{{\footnotesize\faPhone*}\hspace{0.13cm}+90 541 376 92 86}}
|
||||||
|
\hspace{0.5cm}
|
||||||
|
\mbox{\href{mailto:john@doe.com}{{\small\faEnvelope[regular]}\hspace{0.13cm}john@doe.com}}
|
||||||
|
\hspace{0.5cm}
|
||||||
|
\mbox{\href{https://example.com/}{{\small\faLink}\hspace{0.13cm}example.com}}
|
||||||
|
\hspace{0.5cm}
|
||||||
|
\mbox{\href{https://www.linkedin.com/in/dummy}{{\small\faLinkedinIn}\hspace{0.13cm}dummy}}
|
||||||
|
\hspace{0.5cm}
|
||||||
|
\mbox{\href{https://www.github.com/sinaatalay}{{\small\faGithub}\hspace{0.13cm}sinaatalay}}
|
||||||
|
\end{header}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Education}
|
||||||
|
\begin{tabularx}{\textwidth}{p{0.55cm} K{0.2 cm} R{3.6 cm}}
|
||||||
|
\textbf{BS}
|
||||||
|
&
|
||||||
|
\textbf{Bogazici University}, Mechanical Engineering
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
\begin{highlights}
|
||||||
|
\item GPA: 3.80/4.00 (\hrefExternal{https://example.com/}{Transcript})
|
||||||
|
\item Test 1
|
||||||
|
\item Test 2
|
||||||
|
\end{highlights}
|
||||||
|
&
|
||||||
|
Istanbul, Turkey \hspace*{-0.2cm + 0.2 cm} \newline
|
||||||
|
Sept. 1980 to Jan. 1985 \hspace*{-0.2cm + 0.2 cm}
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
|
||||||
|
\begin{tabularx}{\textwidth}{p{0.55cm} K{0.2 cm} R{3.6 cm}}
|
||||||
|
\textbf{}
|
||||||
|
&
|
||||||
|
\textbf{The University of Texas at Austin}, Mechanical Engineering, Student Exchange Program
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
&
|
||||||
|
Austin, TX, USA \hspace*{-0.2cm + 0.2 cm} \newline
|
||||||
|
Aug. 2021 to Jan. 2022 \hspace*{-0.2cm + 0.2 cm}
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Work Experience}
|
||||||
|
\begin{tabularx}{\textwidth}{K{0.2 cm} R{3.6 cm}}
|
||||||
|
\textbf{Company 1}, Position 1
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
\begin{highlights}
|
||||||
|
\item Test 1
|
||||||
|
\item Test 2
|
||||||
|
\item Test 3
|
||||||
|
\end{highlights}
|
||||||
|
&
|
||||||
|
Geneva, Switzerland \hspace*{-0.2cm + 0.2 cm} \newline
|
||||||
|
Feb. 2023 to present \hspace*{-0.2cm + 0.2 cm} \newline
|
||||||
|
8 months \hspace*{-0.2cm + 0.2 cm}
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
|
||||||
|
\begin{tabularx}{\textwidth}{K{0.2 cm} R{3.6 cm}}
|
||||||
|
\textbf{Company 2}, Position 2
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
\begin{highlights}
|
||||||
|
\item Test 1
|
||||||
|
\item Test 2
|
||||||
|
\item Test 3
|
||||||
|
\end{highlights}
|
||||||
|
&
|
||||||
|
Geneva, Switzerland \hspace*{-0.2cm + 0.2 cm} \newline
|
||||||
|
Feb. 1986 to Feb. 2023 \hspace*{-0.2cm + 0.2 cm} \newline
|
||||||
|
37 years 1 month \hspace*{-0.2cm + 0.2 cm}
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Academic Projects}
|
||||||
|
\begin{tabularx}{\textwidth}{K{0.2 cm} R{3.6 cm}}
|
||||||
|
\textbf{Academic Project 1}, \hrefExternal{https://example.com/}{view on my website}
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
\begin{highlights}
|
||||||
|
\item Test 1
|
||||||
|
\item Test 2
|
||||||
|
\end{highlights}
|
||||||
|
&
|
||||||
|
Istanbul, Turkey \hspace*{-0.2cm + 0.2 cm} \newline
|
||||||
|
Spring 2022 \hspace*{-0.2cm + 0.2 cm}
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
|
||||||
|
\begin{tabularx}{\textwidth}{K{0.2 cm} R{3.6 cm}}
|
||||||
|
\textbf{Academic Project 2}, \hrefExternal{https://example.com/}{view on my website}
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
\begin{highlights}
|
||||||
|
\item Test 1
|
||||||
|
\item Test 2
|
||||||
|
\end{highlights}
|
||||||
|
&
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
|
||||||
|
\begin{tabularx}{\textwidth}{K{0.2 cm} R{3.6 cm}}
|
||||||
|
\textbf{Academic Project 3}, \hrefExternal{https://example.com/}{view on my website}
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
\begin{highlights}
|
||||||
|
\item Test 1
|
||||||
|
\item Test 2
|
||||||
|
\end{highlights}
|
||||||
|
&
|
||||||
|
Istanbul, Turkey \hspace*{-0.2cm + 0.2 cm} \newline
|
||||||
|
Feb. 2022 to May 2022 \hspace*{-0.2cm + 0.2 cm}
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Certificates}
|
||||||
|
\begin{tabularx}{\textwidth}{K{0.2 cm} R{3.6 cm}}
|
||||||
|
\textbf{Certificate 1}
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
&
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Personal Projects}
|
||||||
|
\begin{tabularx}{\textwidth}{K{0.2 cm} R{3.6 cm}}
|
||||||
|
\textbf{Personal Project 1}
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
&
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Skills}
|
||||||
|
\setlength{\leftskip}{0.2cm}
|
||||||
|
|
||||||
|
\textbf{Programming:} C++, C, Python, JavaScript, MATLAB, Lua, LaTeX
|
||||||
|
|
||||||
|
\setlength{\leftskip}{0cm}
|
||||||
|
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
|
||||||
|
\setlength{\leftskip}{0.2cm}
|
||||||
|
|
||||||
|
\textbf{CAE:} GMSH, GetDP, CalculiX
|
||||||
|
|
||||||
|
\setlength{\leftskip}{0cm}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Test Scores}
|
||||||
|
\setlength{\leftskip}{0.2cm}
|
||||||
|
|
||||||
|
\textbf{TOEFL:} 120/120
|
||||||
|
|
||||||
|
\setlength{\leftskip}{0cm}
|
||||||
|
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
|
||||||
|
\setlength{\leftskip}{0.2cm}
|
||||||
|
|
||||||
|
\textbf{IELTS:} 9.0/9.0 (\hrefExternal{https://example.com/}{view on my website})
|
||||||
|
|
||||||
|
\setlength{\leftskip}{0cm}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Extracurricular Activities}
|
||||||
|
\begin{tabularx}{\textwidth}{K{0.2 cm} R{3.6 cm}}
|
||||||
|
\textbf{Test Company 1}, Test Position 1
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
\begin{highlights}
|
||||||
|
\item Lead and train members for intercollegiate alpine ski races in Turkey and organize skiing events.
|
||||||
|
\end{highlights}
|
||||||
|
&
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
|
||||||
|
\begin{tabularx}{\textwidth}{K{0.2 cm} R{3.6 cm}}
|
||||||
|
\textbf{Test Company 1}, Test Position 1
|
||||||
|
\vspace*{0.12 cm}
|
||||||
|
\begin{highlights}
|
||||||
|
\item Test 1
|
||||||
|
\item Test 2
|
||||||
|
\item Test 3
|
||||||
|
\end{highlights}
|
||||||
|
&
|
||||||
|
Izmir, Turkey \hspace*{-0.2cm + 0.2 cm} \newline
|
||||||
|
Summer 2019 and 2020 \hspace*{-0.2cm + 0.2 cm}
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Publications}
|
||||||
|
\begin{tabularx}{\textwidth}{K{0.2 cm} R{2 cm}}
|
||||||
|
\textbf{Phononic band gaps induced by inertial amplification in periodic media}
|
||||||
|
|
||||||
|
Cetin Yilmaz, Gregory M Hulbert, Noboru Kikuchi
|
||||||
|
|
||||||
|
DOI: \hrefExternal{https://doi.org/10.1103/PhysRevB.76.054309}{10.1103/PhysRevB.76.054309}
|
||||||
|
&
|
||||||
|
Aug. 2007
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\end{document}
|
|
@ -1,12 +1,12 @@
|
||||||
import unittest
|
import unittest
|
||||||
from rendercv import data_model, rendering
|
|
||||||
|
from rendercv import data_model
|
||||||
|
|
||||||
from datetime import date as Date
|
from datetime import date as Date
|
||||||
from pydantic import ValidationError
|
from pydantic import ValidationError
|
||||||
from pydantic_core import Url
|
|
||||||
|
|
||||||
|
|
||||||
class TestRendercv(unittest.TestCase):
|
class TestDataModel(unittest.TestCase):
|
||||||
def test_check_spelling(self):
|
def test_check_spelling(self):
|
||||||
sentences = [
|
sentences = [
|
||||||
"This is a sentence.",
|
"This is a sentence.",
|
Loading…
Reference in New Issue