Ejemplo n.º 1
0
    def test_book(self):
        author = models.Author(
            name="Ясинский Анджей",
            url="http://samlib.ru/p/pupkin_wasja_ibragimowich/indexdate.shtml"
        ).save()

        book = models.Book(
            author_id=author.id,
            url='http://samlib.ru/p/pupkin_wasja_ibragimowich/updatetxt.shtml',
            name="Ник. Последнее обновление",
            list="Глава",
            exclude=False,
            desk="Прода к шестой книге от 09.08.2012. Глава 6. "
            "Приятного чтения. Спасибо всем, кто приложил руки к вычитке"
            " предыдущих глав. Здесь можно править текущий текст: Прода"
            " для редактирования",
        ).save()
        self.assertTrue(book.is_new)

        book = models.Book(
            author_id=author.id,
            url='http://samlib.ru/p/pupkin_wasja_ibragimowich/'
            'updatetxt2.shtml',
            name="Ник. Последнее обновление",
            list="Глава",
            exclude=False,
            desk="Прода к шестой книге от 09.08.2012. Глава 6. Приятного"
            " чтения. Спасибо всем, кто приложил руки к вычитке "
            "предыдущих глав. Здесь можно править текущий текст: "
            "Прода для редактирования",
        ).save()

        books = models.Book.get()
        self.assertEqual(len(books), 2)

        books = models.Book.get_by_author(author)
        self.assertEqual(len(books), 2)

        books = models.Book.get_by_author(author.id)
        self.assertEqual(len(books), 2)

        book = models.Book(
            author_id=author.id,
            url='http://samlib.ru/p/pupkin_wasja_ibragimowich/updatetxt.shtml',
            name="Ник. Последнее обновление",
            list="Глава",
            exclude=False,
            desk="Прода к шестой книге от 09.08.2012. Глава 6. Приятного"
            " чтения. Спасибо всем, кто приложил руки к вычитке "
            "предыдущих глав. Здесь можно править текущий текст: "
            "Прода для редактирования",
        )
        self.assertRaises(sqlite3.IntegrityError, book.save)
Ejemplo n.º 2
0
def create_author(url):
    if RE_URL.match(url):
        p = urllib.parse.urlparse(url, scheme='http', allow_fragments=True)
        paths = [path for path in p.path.split('/') if path]
        if paths:
            if paths[-1].endswith('.shtml'):
                paths.pop()
            url = '{scheme:>s}://{netloc:>s}/{path:>s}/'.format(
                scheme=p.scheme, netloc=p.netloc, path='/'.join(paths))
            author = models.Author.get_by_url(url=url) \
                or models.Author(url=url).url_fix().save()
            return check_author(author)
    else:
        raise urllib.request.URLError(url)
    return None
Ejemplo n.º 3
0
    def test_author(self):
        author = models.Author(
            name="Ясинский Анджей",
            url="http://samlib.ru/p/pupkin_wasja_ibragimowich/indexdate.shtml")
        self.assertIsNone(author.id)

        author.save()
        self.assertIsNotNone(author.id)

        authors = models.Author.get("name = :name", name="Ясинский Анджей")
        self.assertEqual(len(authors), 1)

        author = models.Author.get_one("name = :name", name="Ясинский Анджей")
        self.assertIsNotNone(author.id)

        author = models.Author.get_by_id(author.id)
        self.assertIsNotNone(author.id)

        author.delete()
        self.assertIsNone(author.id)

        authors = models.Author.get("name = :name", name="Ясинский Анджей")
        self.assertEqual(len(authors), 0)