diff --git a/Tutorials/T05-PyUnit/slides/Unit Testing.pdf b/Tutorials/T05-PyUnit/slides/Unit Testing.pdf
index 564400a02ac62d58090fe9e35da4b105f1f5c60d..303003401e0fdf817d2c91329a62daf224eefbfe 100644
Binary files a/Tutorials/T05-PyUnit/slides/Unit Testing.pdf and b/Tutorials/T05-PyUnit/slides/Unit Testing.pdf differ
diff --git a/Tutorials/T05-PyUnit/slides/Unit Testing.tex b/Tutorials/T05-PyUnit/slides/Unit Testing.tex
index 9855fc59f7a644687dc25670bd59f5ade7902cf6..41a78c997d2a413653b6b7a160f5ee83da0996f8 100644
--- a/Tutorials/T05-PyUnit/slides/Unit Testing.tex	
+++ b/Tutorials/T05-PyUnit/slides/Unit Testing.tex	
@@ -199,7 +199,23 @@ No one likes to work with someone who doesn't verify/test if their code works.}
 \frametitle{What is Assert?}
 \begin{itemize}
 	\item{	Wikipedia: \say{... is a statement that a predicate (Boolean-valued function, i.e. a true-false expression) is expected to always be true at that point in the code. If an assertion evaluates to false at run time, an assertion failure results, which typically causes the program to crash, or to throw an assertion exception.}}
-	\item{Basically, if whatever follows assert is true, it will continue. Otherwise the test will fail and stop running.}
+	\item{Basically, if whatever follows assert is true, it will continue. Otherwise the test will fail and stop running.
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Example of Assert?}
+\begin{itemize}
+	\item{To assert something to be true, you can write}
+	\begin{lstlisting}[language=Python]
+	assert <true statement>
+	\end{lstlisting}
+	\item{To assert something to be false, you can write}
+	\begin{lstlisting}[language=Python]
+	assert (<false statement>) == False
+	\end{lstlisting}
+				
+
 \end{itemize}
 \end{frame}
 
@@ -225,14 +241,113 @@ class TestCircles:
 \begin{frame}[fragile]
 \frametitle{Running our first test}
 \begin{itemize}
-	\item{Run this command in your command prompt inside the folder of your test file}
-	\item{\texttt{pytest test\_circles.py}}
+	\item{Run this command in your command prompt inside the folder of your test file: \texttt{pytest test\_circles.py}}
+	\item{To run all tests within the directory, just run \texttt{pytest}. It will search for all files starting with "test\_" and run all methods starting with "test\_"}
 	\begin{figure}[b]
 		{\includegraphics[width=10cm]{test-result}}
 	\end{figure}
 \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{What if a test failed?}
+\begin{itemize}
+	\item{Say we have the following code:}
+\end{itemize}
+\begin{lstlisting}[language=Python]
+import pytest
+from CircleADT import *
+
+class TestCircles:
+
+	def test_xcoord_are_equal(self):
+		circle = CircleT(1,2,3)
+		assert circle.xcoord() == 1
+
+	def test_xcoord_are_not_equal(self):
+		circle = CircleT(1,2,3)
+		assert circle.xcoord() != 1
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{What if a test failed?}
+
+	\begin{figure}[b]
+		{\includegraphics[width=10cm]{test-result-fail}}
+	\end{figure}
+
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Floating Point assertsions}
+\begin{itemize}
+
+
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Redundant code in tests}
+\begin{lstlisting}[language=Python]
+import pytest
+from CircleADT import *
+
+class TestCircles:
+
+	def test_xcoord_are_equal(self):
+		circle = CircleT(1,2,3)
+		assert circle.xcoord() == 1
+
+	def test_xcoord_are_not_equal(self):
+		circle = CircleT(1,2,3)
+		assert circle.xcoord() != 1
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Redundant code in tests}
+\begin{lstlisting}[language=Python]
+import pytest
+from CircleADT import *
+
+class TestCircles:
+
+	def setup_method(self, method):
+		self.circle = CircleT(1,2,3)
+
+	def teardown_method(self, method):
+		self.circle = None
+
+	def test_xcoord_are_equal(self):
+		assert self.circle.xcoord() == 1
+
+	def test_xcoord_are_not_equal(self):
+		assert self.circle.xcoord() != 2
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{How much should I test?}
+\begin{itemize}
+	\item {Test all requirements in each function}
+	\item{Cover edge cases that may cause unintended consequences}
+	\item{Have an acceptable amount of code coverage}
+\end{itemize}
+\end{frame}
 
+\begin{frame}[fragile]
+\frametitle{Code Coverage}
+\begin{itemize}
+	\item {Test all requirements in each function}
+\end{itemize}
+\end{frame}
 
+\begin{frame}[fragile]
+\frametitle{Documentation on pytest}
+\begin{itemize}
+	\item {\url{https://docs.pytest.org/en/latest/xunit_setup.html}}
+\end{itemize}
 \end{frame}
 
 \end{document}
diff --git a/Tutorials/T05-PyUnit/slides/test-result-fail.png b/Tutorials/T05-PyUnit/slides/test-result-fail.png
new file mode 100644
index 0000000000000000000000000000000000000000..120171ebde527dfbc45d351dde312c365f92a19f
Binary files /dev/null and b/Tutorials/T05-PyUnit/slides/test-result-fail.png differ
diff --git a/Tutorials/T05-PyUnit/src/test_circles.py b/Tutorials/T05-PyUnit/src/test_circles.py
index 590046ad9606ecc25ef151a050dc78696d7db1b8..42fed93731c1306e681c3bcd03a7300fcc210591 100644
--- a/Tutorials/T05-PyUnit/src/test_circles.py
+++ b/Tutorials/T05-PyUnit/src/test_circles.py
@@ -1,19 +1,28 @@
-import unittest
+import pytest
 from CircleADT import *
 
-class CirclesTests(unittest.TestCase):
-    
-    def setUp(self):
+class TestCircles:
+
+    @classmethod
+    def setup_class(cls):
+        """ setup any state specific to the execution of the given class (which
+        usually contains tests).
+        """
+
+    @classmethod
+    def teardown_class(cls):
+        """ teardown any state that was previously setup with a call to
+        setup_class.
+        """
+
+    def setup_method(self, method):
         self.circle = CircleT(1,2,3)
 
-    def tearDown(self):
+    def teardown_method(self, method):
         self.circle = None
 
     def test_xcoord_are_equal(self):
-        self.assertTrue(self.circle.xcoord() == 1)
+        assert self.circle.xcoord() == 1
 
     def test_xcoord_are_not_equal(self):
-        self.assertFalse(self.circle.xcoord() != 1)
-
-if __name__ == '__main__':
-    unittest.main()
\ No newline at end of file
+        assert self.circle.xcoord() != 2
\ No newline at end of file