def test(): '''Tests Catalog.degrees.''' catalog = udacity.Catalog() degrees = catalog.degrees() assert type(degrees) is list assert [x for x in degrees if x['key'] == 'nd001'][0] is not None
def test_get_malformed(): '''Tests Catalog.__get, with the wrong URL.''' catalog = udacity.Catalog() catalog.url = 'https://www.udacity.com/fake' assert_raises(HTTPError, catalog.all)
def test_cs101(): '''Tests Catalog.course('cs101').''' catalog = udacity.Catalog() assert type(catalog.course('cs101')) is dict assert len(catalog.course('cs101')) == 29 assert catalog.course('cs101').get('key') == 'cs101'
def test_data_sci(): '''Tests Catalog.track(name), with the "Data Science" track.''' catalog = udacity.Catalog() ds = catalog.track('Data Science') assert type(ds) is dict assert ds['name'] == "Data Science"
def test_empty(): '''Tests Catalog.clear with no existing data.''' catalog = udacity.Catalog() assert_dict_equal(catalog.cache.data, {}) catalog.clear() assert_dict_equal(catalog.cache.data, {})
def test(): '''Tests Catalog.tracks.''' catalog = udacity.Catalog() assert type(catalog.tracks()) is list tracks = catalog.tracks() assert tracks[0].get('name') is not None
def test_cs101(): '''Tests Catalog.instructors('cs101').''' catalog = udacity.Catalog() i = catalog.instructors('cs101') assert type(i) is list assert len(i[0]) is 4 assert set(i[0].keys()) == {'bio', 'image', 'name', 'key'}
def test_filled(): '''Tests Catalog.clear with existing data.''' catalog = udacity.Catalog() assert_dict_equal(catalog.cache.data, {}) courses = catalog.all() assert catalog.cache.data.get('catalog') is not None catalog.clear() assert_dict_equal(catalog.cache.data, {})
def test_courses(): '''Tests Catalog.courses.''' catalog = udacity.Catalog() courses = catalog.courses() assert type(courses) is list assert len(courses[0]) == 29 keys = [ 'instructors', 'subtitle', 'key', 'image', 'syllabus', 'assistants', 'summary', 'starter' ] for k in keys: assert k in courses[0]
def test_invalid(): '''Tests Catalog.course with an invalid key.''' catalog = udacity.Catalog() assert_raises(IndexError, catalog.course, 'fake_course_key')
def test_malformed(): '''Tests Catalog.track with a non-existant track name.''' catalog = udacity.Catalog() assert_raises(IndexError, catalog.track, 'aaaaaa')
def test_get(): '''Tests Catalog.__get.''' catalog = udacity.Catalog() assert type(catalog.all()) is dict
# робота з API Udacity з допомогою програми-оболонки # та використання python-бібліотеки udacity import udacity c = udacity.Catalog() tracks = c.tracks() track_names = [t['name'] for t in tracks] web_dev_teachers = c.instructors('cs253') nd001_description = c.degree('nd001')['expected_learning'] print(track_names) # спосіб роботи з API безпосередньо наданий Udacity, використовує JSON # import json # import urllib.request # response = urllib.request.urlopen('https://udacity.com/public-api/v0/courses') # json_response = json.loads(response.read().decode('utf8')) # for course in json_response['courses']: # print(course['title']) # print(course['homepage'])
def test(): '''Tests Catalog.__init__ with default options.''' catalog = udacity.Catalog() assert_dict_equal(catalog.cache.data, {}) assert catalog.url == 'https://www.udacity.com/public-api/v0/courses?projection=internal'
def test_all(): '''Tests Catalog.all.''' catalog = udacity.Catalog() assert set(catalog.all().keys()) == {'courses', 'tracks', 'degrees'}
def test_fake(): '''Tests Catalog.instructors, with a fake course key.''' catalog = udacity.Catalog() assert_raises(IndexError, catalog.instructors, 'fake')