From a59cbe0b596e3cc3e9d046d2630429d86d2261ff Mon Sep 17 00:00:00 2001
From: magnus2142 <magnus.bredeli@hotmail.com>
Date: Wed, 11 May 2022 10:48:48 +0200
Subject: [PATCH] fixed tests and use pytest instead of nosetests
---
.gitlab-ci.yml | 4 +--
bbcli/commands/assignments.py | 2 +-
requirements.txt | 1 -
.../test_announcements_services.py | 31 +++++++++----------
.../test_assignments_services.py | 11 +++----
tests/test_services/test_contents_services.py | 15 +++++----
tests/test_services/test_courses_services.py | 5 ++-
7 files changed, 32 insertions(+), 37 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1f04b3f..1535375 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -29,13 +29,13 @@ before_script:
- source venv/bin/activate
- python -m pip install -r requirements.txt
-py37_nose:
+py37_pytest:
image: python:3.7
stage: test
script:
- apt-get update -q -y
- pip install -r requirements.txt
- - nosetests -v --nocapture
+ - pytest -m pytest
deploy-prod-pypi:
image: docker.km3net.de/base/python:3
diff --git a/bbcli/commands/assignments.py b/bbcli/commands/assignments.py
index 91a9887..f68f7ba 100644
--- a/bbcli/commands/assignments.py
+++ b/bbcli/commands/assignments.py
@@ -51,7 +51,7 @@ def create_assignment(ctx, course_id: str, parent_id: str, title: str,
response = contents_services.create_assignment(
ctx.obj['SESSION'], course_id, parent_id, title, standard_options, grading_options, attachments, markdown)
- assignments_views.print_created_assignment(json.loads(response), print_json)
+ assignments_views.print_created_assignment(response, print_json)
@click.command(name='list', help='List all assignments from a course.')
@click.option('-c', '--course', 'course_id', required=True, help='COURSE ID, of the course you want assignments from.')
diff --git a/requirements.txt b/requirements.txt
index 1877beb..a49ebfa 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -12,6 +12,5 @@ python-magic==0.4.25
python-dateutil==2.8.2
tabulate==0.8.9
pwinput==1.0.2
-nose==1.3.7
Markdown==3.3.6
markdownify==0.11.2
\ No newline at end of file
diff --git a/tests/test_services/test_announcements_services.py b/tests/test_services/test_announcements_services.py
index cd1056c..ad1a155 100644
--- a/tests/test_services/test_announcements_services.py
+++ b/tests/test_services/test_announcements_services.py
@@ -4,8 +4,9 @@ from typing import List
from click import Abort, BadParameter
import requests
+import pytest
+
from unittest.mock import Mock, patch
-from nose.tools import assert_list_equal, assert_equal, raises
from bbcli.entities.content_builder_entitites import DateInterval
from bbcli.services.announcements_services import create_announcement, delete_announcement, list_announcement, list_announcements, list_course_announcements, update_announcement
@@ -78,7 +79,7 @@ class TestAnnouncementsServices(object):
# Id is irrelavant here because the API call is mocked anyways
response = list_announcement(self.test_session, 'test_course_id', 'test_announcement_id')
- assert_equal(response, TEST_ANNOUNCEMENT)
+ assert response == TEST_ANNOUNCEMENT
def test_list_course_announcements(self):
@@ -91,9 +92,9 @@ class TestAnnouncementsServices(object):
# Id is irrelavant here because the API call is mocked anyways
response = list_course_announcements(self.test_session, 'test_course_id')
- assert_equal(response, {
+ assert response == {
'results': TEST_COURSE_ANNOUNCEMENTS_LIST
- })
+ }
def test_list_announcements(self):
self.mock_auth.return_value.ok = True
@@ -118,7 +119,7 @@ class TestAnnouncementsServices(object):
mock_get_course_announcements_patcher.stop()
mock_get_courses_patcher.stop()
- assert_equal(response, TEST_ANNOUNCEMENTS_LIST)
+ assert response == TEST_ANNOUNCEMENTS_LIST
def test_create_annonucement(self):
self.mock_auth.return_value.ok = True
@@ -138,19 +139,17 @@ class TestAnnouncementsServices(object):
mock_input_body_patcher.stop()
mock_post_patcher.stop()
- assert_equal(response, TEST_CREATED_ANNOUNCEMENT)
+ assert response == TEST_CREATED_ANNOUNCEMENT
- @raises(BadParameter)
def test_create_announcement_with_empty_title(self):
self.mock_auth.return_value.ok = True
+ with pytest.raises(BadParameter):
+ create_announcement(self.test_session, '_33050_1', '', DateInterval(), False)
- create_announcement(self.test_session, '_33050_1', '', DateInterval(), False)
-
- @raises(Abort)
def test_create_annonucement_with_wrong_date_format(self):
self.mock_auth.return_value.ok = True
-
- create_announcement(self.test_session, '_33050_1', 'Test annonucement', DateInterval(start=format_date('16-04-22 12:00')), False)
+ with pytest.raises(Abort):
+ create_announcement(self.test_session, '_33050_1', 'Test annonucement', DateInterval(start=format_date('16-04-22 12:00')), False)
def test_delete_announcement(self):
@@ -164,9 +163,8 @@ class TestAnnouncementsServices(object):
response = delete_announcement(self.test_session, 'test_course_id', 'test_announcement_id')
- assert_equal(response, '')
+ assert response == ''
- @raises(requests.exceptions.HTTPError)
def test_delete_announcement_with_wrong_announcement_id(self):
self.mock_auth.return_value.ok = True
@@ -176,7 +174,8 @@ class TestAnnouncementsServices(object):
mock_delete.return_value = requests.models.Response()
mock_delete.return_value.status_code = 404
- delete_announcement(self.test_session, 'test_course_id', 'test_announcement_id')
+ with pytest.raises(requests.exceptions.HTTPError):
+ delete_announcement(self.test_session, 'test_course_id', 'test_announcement_id')
def test_update_announcement(self):
self.mock_auth.return_value.ok = True
@@ -205,4 +204,4 @@ class TestAnnouncementsServices(object):
mock_edit_title_patcher.stop()
mock_edit_body_patcher.stop()
- assert_equal(response, UPDATED_TEST_ANNOUNCEMENT)
\ No newline at end of file
+ assert response == UPDATED_TEST_ANNOUNCEMENT
\ No newline at end of file
diff --git a/tests/test_services/test_assignments_services.py b/tests/test_services/test_assignments_services.py
index ea3e06f..ccf76eb 100644
--- a/tests/test_services/test_assignments_services.py
+++ b/tests/test_services/test_assignments_services.py
@@ -5,7 +5,6 @@ from click import Abort, BadParameter
import requests
from unittest.mock import Mock, patch
-from nose.tools import assert_list_equal, assert_equal, raises
from bbcli.entities.content_builder_entitites import DateInterval, FileOptions, GradingOptions, StandardOptions, WeblinkOptions
from bbcli.services.assignments_services import create_column_attempt, get_assignments, get_column_attempt, get_column_attempts, update_column_attempt
@@ -67,7 +66,7 @@ class TestAssignmentsServices(object):
response = get_assignments(self.test_session, 'test_course_id')
- assert_equal(response, TEST_ASSIGNMENTS_LIST['results'])
+ assert response == TEST_ASSIGNMENTS_LIST['results']
def test_get_column_attempts(self):
self.mock_auth.return_value.ok = True
@@ -76,7 +75,7 @@ class TestAssignmentsServices(object):
response = get_column_attempts(self.test_session, 'test_course_id', 'test_column_id')
- assert_equal(json.dumps(response), json.dumps(TEST_ASSIGNMENT_ATTEMPTS_LIST['results']))
+ assert json.dumps(response) == json.dumps(TEST_ASSIGNMENT_ATTEMPTS_LIST['results'])
def test_get_column_attempt(self):
self.mock_auth.return_value.ok = True
@@ -85,7 +84,7 @@ class TestAssignmentsServices(object):
response = get_column_attempt(self.test_session, 'test_course_id', 'test_column_id', 'test_attempt_id')
- assert_equal(response, json.dumps(TEST_ATTEMPT, indent=2))
+ assert response == json.dumps(TEST_ATTEMPT, indent=2)
def create_column_attempt(self):
self.mock_auth.return_value.ok = True
@@ -94,7 +93,7 @@ class TestAssignmentsServices(object):
response = create_column_attempt(self.test_session, 'test_course_id', 'test_column_id')
- assert_equal(response, TEST_SUBMITTED_ATTEMPT)
+ assert response == TEST_SUBMITTED_ATTEMPT
def test_update_column_attempt(self):
self.mock_auth.return_value.ok = True
@@ -103,5 +102,5 @@ class TestAssignmentsServices(object):
response = update_column_attempt(self.test_session, 'test_course_id', 'test_column_id', 'test_attempt_id')
- assert_equal(json.loads(response), TEST_GRADE_ATTEMPT)
+ assert json.loads(response) == TEST_GRADE_ATTEMPT
diff --git a/tests/test_services/test_contents_services.py b/tests/test_services/test_contents_services.py
index 50614b8..1bbe121 100644
--- a/tests/test_services/test_contents_services.py
+++ b/tests/test_services/test_contents_services.py
@@ -5,7 +5,6 @@ from click import Abort, BadParameter
import requests
from unittest.mock import Mock, patch
-from nose.tools import assert_list_equal, assert_equal, raises
from bbcli.entities.content_builder_entitites import DateInterval, FileOptions, GradingOptions, StandardOptions, WeblinkOptions
from bbcli.services.contents_services import create_assignment, create_document, create_externallink, create_file, create_folder, delete_content, update_content
@@ -55,7 +54,7 @@ class TestContentsServices(object):
mock_input_body_patcher.stop()
- assert_equal(response, TEST_CREATED_DOCUMENT)
+ assert response == TEST_CREATED_DOCUMENT
def test_create_file(self):
self.mock_auth.return_value.ok = True
@@ -72,7 +71,7 @@ class TestContentsServices(object):
mock_upload_file_patcher.stop()
- assert_equal(response, TEST_CREATED_FILE)
+ assert response == TEST_CREATED_FILE
def test_create_externallink(self):
@@ -84,7 +83,7 @@ class TestContentsServices(object):
response = create_externallink(self.test_session, 'test_course_id', 'test_parent_id', 'Test web-link', 'https://vg.no/', WeblinkOptions(), standard_options)
- assert_equal(response, TEST_CREATED_EXTERNALLINK)
+ assert response == TEST_CREATED_EXTERNALLINK
def test_create_folder(self):
self.mock_auth.return_value.ok = True
@@ -102,7 +101,7 @@ class TestContentsServices(object):
mock_input_body_patcher.stop()
- assert_equal(response, TEST_CREATED_FOLDER)
+ assert response == TEST_CREATED_FOLDER
def test_create_assignment(self):
self.mock_auth.return_value.ok = True
@@ -122,7 +121,7 @@ class TestContentsServices(object):
mock_input_body_patcher.stop()
mock_upload_file_patcher.stop()
- assert_equal(response, TEST_CREATED_ASSIGNMENT)
+ assert response == TEST_CREATED_ASSIGNMENT
def test_delete_content(self):
@@ -136,7 +135,7 @@ class TestContentsServices(object):
mock_delete_patcher.stop()
- assert_equal(response.status_code, 204)
+ assert response.status_code == 204
def test_update_content(self):
self.mock_auth.return_value.ok = True
@@ -160,4 +159,4 @@ class TestContentsServices(object):
mock_edit_title_patcher.stop()
mock_edit_body_patcher.stop()
- assert_equal(response, TEST_GET_CONTENT_UPDATED)
\ No newline at end of file
+ assert response == TEST_GET_CONTENT_UPDATED
\ No newline at end of file
diff --git a/tests/test_services/test_courses_services.py b/tests/test_services/test_courses_services.py
index 236ad2d..29c2fa0 100644
--- a/tests/test_services/test_courses_services.py
+++ b/tests/test_services/test_courses_services.py
@@ -5,7 +5,6 @@ import requests
from bbcli.services.courses_services import list_all_courses, list_course
from unittest.mock import Mock, patch
-from nose.tools import assert_list_equal, assert_equal
TEST_COURSE = {
'id':'_33050_1',
@@ -71,7 +70,7 @@ class TestCoursesServices(object):
# Id is irrelavant here because the API call is mocked anyways
response = list_course(test_session, '_33050_1')
- assert_equal(response, TEST_COURSE)
+ assert response == TEST_COURSE
# def test_list_courses(self):
# self.mock_auth.return_value.ok = True
@@ -111,4 +110,4 @@ class TestCoursesServices(object):
test_session = requests.Session()
response = list_all_courses(test_session, 'test_user')
- assert_equal(response, TEST_COURSE_LIST)
\ No newline at end of file
+ assert response == TEST_COURSE_LIST
\ No newline at end of file
--
GitLab