def titles(self, key, value): def is_main_title(key): return key.startswith('245') def is_translated_title(key): return key.startswith('242') titles = self.setdefault('titles', []) values = force_force_list(value) for val in values: title_obj = { 'title': val.get('a'), 'subtitle': force_single_element(val.get('b')), # FIXME: #1484 'source': val.get('9'), } if is_main_title(key): titles.insert(0, title_obj) elif is_translated_title(key): title = val.get('a') if title: lang = langdetect.detect(title) if lang: title_obj['language'] = lang self.setdefault('title_translations', []).append(title_obj) else: titles.append(title_obj) return titles
def test_force_single_element_returns_none_on_empty_list(): assert force_single_element([]) is None
def test_force_single_element_returns_element_when_not_a_list(): expected = 'foo' result = force_single_element('foo') assert expected == result
def test_force_single_element_returns_first_element_on_a_list(): expected = 'foo' result = force_single_element(['foo', 'bar', 'baz']) assert expected == result