def test_get_tags(self): session = Client().session() image = Image(filename='cafebabe') mustache = Tag(name='mustache') gif = Tag(name='gif') session.add(image) session.add(mustache) session.add(gif) session.flush() session.add(ImageTag(tag_id=mustache.tag_id, image_id=image.image_id)) session.add(ImageTag(tag_id=gif.tag_id, image_id=image.image_id)) session.flush() tags = image.get_tags() eq_(list(tags), ['mustache', 'gif'])
def test_hitting_escape_aborts_editing_without_saving(self): session = Client().session() pic = Image(filename="acebabe") session.add(pic) session.flush() self.visit_url('/image/{0}'.format(pic.image_id)) self.browser.click_link_by_text('Edit') add_tag = self.browser.find_by_css('a.add-tag') add_tag.click() tag_input = self.browser.find_by_id('tag')[0] tag_input.fill('babe') tag_input.fill(Keys.ESCAPE) add_tag = self.browser.find_by_css('a.add-tag') assert add_tag.visible, "Editing didn't abort!" eq_(list(pic.get_tags()), [])
def test_tabbing_out_of_tab_input_opens_and_focuses_a_new_one(self): session = Client().session() pic = Image(filename="acebabe") session.add(pic) session.flush() self.visit_url('/image/{0}'.format(pic.image_id)) self.browser.click_link_by_text('Edit') add_tag = self.browser.find_by_css('a.add-tag') add_tag.click() tag_input = self.browser.find_by_id('tag')[0] tag_input.fill('babe\t') tag_removes = self.browser.find_by_css('a.remove-tag') eq_([t.text for t in tag_removes], ['babe']) focused_input = self.browser.find_by_css('input:focus').first eq_(focused_input['id'], 'tag') eq_(list(pic.get_tags()), ['babe'])
def test_edit_tags(self): session = Client().session() pic = Image(filename="silly", title="Silly Picture") session.add(pic) session.flush() pic.add_tags(['goofy', 'silly']) session.flush() self.visit_url('/image/{0}'.format(pic.image_id)) tag_button = self.browser.find_by_id('tag-button') assert tag_button, "Couldn't find a button for listing tags!" tag_button.click() tags = self.browser.find_by_css('li.tag') assert all([t.visible for t in tags]), "Tag listing was not visible!" eq_([t.text for t in tags], ['goofy', 'silly']) self.browser.click_link_by_text('Edit') assert all([not t.visible for t in tags]), "Tag listing didn't disappear!" tag_removes = self.browser.find_by_css('a.remove-tag') eq_([t.text for t in tag_removes], ['goofy', 'silly']) assert all([t.visible for t in tag_removes]), "Remove tag controls weren't visible!" add_tag = self.browser.find_by_css('a.add-tag') eq_(add_tag.text, 'Add tag') assert add_tag.visible, "Add tag control wasn't visible!" tag_removes[0].click() eq_(list(pic.get_tags()), ['silly']) tag_removes = self.browser.find_by_css('a.remove-tag') eq_([t.text for t in tag_removes], ['silly']) self.browser.click_link_by_text('Stop Editing') tag_button.click() tags = self.browser.find_by_css('li.tag') assert all([t.visible for t in tags]), "Tag listing was not visible!" eq_([t.text for t in tags], ['silly']) self.browser.click_link_by_text('Edit') add_tag.click() focused_input = self.browser.find_by_css('input:focus').first tag_input = self.browser.find_by_id('tag').first eq_(focused_input['id'], 'tag', "Add-tag input wasn't automatically focused!") tag_input.fill('funny\n') tag_removes = self.browser.find_by_css('a.remove-tag') eq_([t.text for t in tag_removes], ['silly', 'funny']) eq_(list(pic.get_tags()), ['silly', 'funny']) self.browser.click_link_by_text('Stop Editing') tag_button.click() tags = self.browser.find_by_css('li.tag') assert all([t.visible for t in tags]), "Tag listing was not visible!" eq_([t.text for t in tags], ['silly', 'funny']) self.browser.click_link_by_text('Edit') tag_removes[1].click() eq_(list(pic.get_tags()), ['silly'])