/ test_project.py
test_project.py
 1  import project
 2  import datetime
 3  from unittest.mock import patch
 4  import tabulate
 5  import os
 6  import csv
 7  from itertools import cycle
 8  
 9  hdate = datetime.date.today()
10  
11  def test_tod():
12      assert project.tod(['Wednesday'], datetime.date(2024,3,27)) == True
13      assert project.tod(['Wednesday'], datetime.date(2024,3,28)) == False
14      assert project.tod(['Monday', 'Wednesday'], datetime.date(2024,3,27)) == True
15      assert project.tod(['Monday', 'Wednesday'], datetime.date(2024,3,28)) == False
16  
17  def test_createcsv():
18      project.createcsv('test.csv')
19      assert os.path.exists('test.csv') == True
20  
21  def test_create():
22      with patch('builtins.input', side_effect=cycle(['test','7','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'])):
23          project.create('test.csv')
24      with open('test.csv', 'r') as f:
25          reader = list(csv.reader(f))
26          assert reader == [['test', "['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']", hdate.isoformat(), '0']]
27  
28  def test_log():
29      with patch('builtins.input', side_effect=cycle(['test'])):
30          project.log('test.csv')
31      with open('test.csv', 'r') as f:
32          reader = list(csv.reader(f))
33          assert reader == [['test', "['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']", hdate.isoformat(), '1']]
34  
35  
36  def test_view():
37      assert project.view('test.csv') == tabulate.tabulate([['test', "['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']", hdate.isoformat(), '1']], headers=project.FIELDS, tablefmt='fancy_grid')