コード例 #1
0
ファイル: test_image.py プロジェクト: ErinCall/catsnap
    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'])
コード例 #2
0
    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()), [])
コード例 #3
0
    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'])
コード例 #4
0
    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'])