Skip to content

Commit

Permalink
FIX : fixed set_number method bug and 20220628.5 release
Browse files Browse the repository at this point in the history
issue : #11
  • Loading branch information
minwook-shin committed Feb 22, 2023
1 parent 8c15d14 commit 46f1cb4
Show file tree
Hide file tree
Showing 7 changed files with 317 additions and 11 deletions.
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Changelog

## 2022-06-28.5 (2023-02-22)

### Bug Fixes

* Fix set_number method
* https://github.com/minwook-shin/notion-database/issues/11

### Improvements

* Update requests (2.28.2)
* Update typing-extensions (4.5.0)

### Tests

* Add children part test

## 2022-06-28.4 (2023-01-15)

* Add property
Expand Down
2 changes: 2 additions & 0 deletions example.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
PROPERTY.set_title("title")
PROPERTY.set_rich_text("description")
PROPERTY.set_number("number")
PROPERTY.set_number("number-float")
PROPERTY.set_select("select")
PROPERTY.set_multi_select("multi_select")
PROPERTY.set_multi_select("multi_select2")
Expand All @@ -66,6 +67,7 @@
PROPERTY.set_title("title", "title")
PROPERTY.set_rich_text("description", "notion-database")
PROPERTY.set_number("number", 1)
PROPERTY.set_number("number-float", 1.5)
PROPERTY.set_select("select", "test1")
PROPERTY.set_multi_select("multi_select", ["test1", "test2"])
PROPERTY.set_multi_select("multi_select2", ["test1", "test2", "test3"])
Expand Down
2 changes: 1 addition & 1 deletion requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
python-dotenv==0.18.0
python-dotenv==0.21.1
setuptools
wheel
twine
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
requests==2.28.1
typing-extensions==4.4.0
requests==2.28.2
typing-extensions==4.5.0
6 changes: 3 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

setuptools.setup(
name="notion-database",
version=NOTION_VERSION.replace("-", "") + ".4",
version=NOTION_VERSION.replace("-", "") + ".5",
author="minwook-shin",
author_email="minwook0106@gmail.com",
description=" Notion API Database Python Implementation",
Expand All @@ -18,8 +18,8 @@
"Bug Tracker": "https://github.com/minwook-shin/notion-database/issues",
},
install_requires=[
"requests==2.28.1",
"typing-extensions==4.4.0"
"requests==2.28.2",
"typing-extensions==4.5.0"
],
classifiers=[
"Programming Language :: Python :: 3",
Expand Down
12 changes: 7 additions & 5 deletions src/notion_database/properties.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# support : "title", "rich_text", "number", "select", "multi_select", "checkbox", "url", "email", "phone_number"
import numbers

from utils import deprecate


Expand Down Expand Up @@ -45,11 +47,11 @@ def set_number(self, col, text=None):
:param text: page text. If no text is given, for database only.
:return:
"""
if text:
text = int(text)
if text and isinstance(text, numbers.Number):
number = text
else:
text = {}
self.result.update({col: {"number": text}})
number = {}
self.result.update({col: {"number": number}})

def set_select(self, col, text=None):
"""
Expand Down Expand Up @@ -150,7 +152,7 @@ def set_date(self, col, start=None, end=None):
self.result.update({col: {"date": {"start": start}}})
else:
self.result.update({col: {"date": {"start": start, "end": end}}})

def set_files(self, col, files_list=None):
"""
files configuration. Only supports external links.
Expand Down
286 changes: 286 additions & 0 deletions tests/test_children.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,286 @@
import unittest

from src.notion_database.children import Children


class TestChildrenMethods(unittest.TestCase):
def setUp(self):
self.default_test_text = {
'rich_text':
[
{
'type': 'text', 'text': {'content': 'test'}
}
],
'color': 'default'
}

def tearDown(self):
del self.default_test_text

def test_paragraph(self):
children_object = Children()
children_object.set_paragraph(text="test")
api_value = [
{
'object': 'block',
'type': 'paragraph',
'paragraph': self.default_test_text
}
]
self.assertEqual(children_object.result, api_value)

def test_heading_1(self):
children_object = Children()
children_object.set_heading_1(text="test")
api_value = [
{
'object': 'block',
'type': 'heading_1',
'heading_1': self.default_test_text
}
]
self.assertEqual(children_object.result, api_value)

def test_heading_2(self):
children_object = Children()
children_object.set_heading_2(text="test")
api_value = [
{
'object': 'block',
'type': 'heading_2',
'heading_2': self.default_test_text
}
]
self.assertEqual(children_object.result, api_value)

def test_heading_3(self):
children_object = Children()
children_object.set_heading_3(text="test")
api_value = [
{
'object': 'block',
'type': 'heading_3',
'heading_3': self.default_test_text
}
]
self.assertEqual(children_object.result, api_value)

def test_callout(self):
children_object = Children()
children_object.set_callout(text="test")
api_value = [
{
'object': 'block',
'type': 'callout',
'callout': self.default_test_text
}
]
self.assertEqual(children_object.result, api_value)

def test_quote(self):
children_object = Children()
children_object.set_quote(text="test")
api_value = [
{
'object': 'block',
'type': 'quote',
'quote': self.default_test_text
}
]
self.assertEqual(children_object.result, api_value)

def test_bulleted_list_item(self):
children_object = Children()
children_object.set_bulleted_list_item(text="test")
api_value = [
{
'object': 'block',
'type': 'bulleted_list_item',
'bulleted_list_item': self.default_test_text
}
]
self.assertEqual(children_object.result, api_value)

def test_numbered_list_item(self):
children_object = Children()
children_object.set_numbered_list_item(text="test")
api_value = [
{
'object': 'block',
'type': 'numbered_list_item',
'numbered_list_item': self.default_test_text
}
]
self.assertEqual(children_object.result, api_value)

def test_to_do(self):
children_object = Children()
children_object.set_to_do(text="test")
todo_test_text = self.default_test_text
todo_test_text["checked"] = False
api_value = [
{
'object': 'block',
'type': 'to_do',
'to_do': todo_test_text
}
]
self.assertEqual(children_object.result, api_value)

def test_toggle(self):
children_object = Children()
children_object.set_toggle(text="test", children_text="test2")
toggle_test_text = self.default_test_text
toggle_test_text["children"] = [{
"object": "block",
"type": "paragraph",
"paragraph": {
"color": 'default',
"rich_text": [
{
"type": "text",
"text": {
"content": 'test2'
}
}
]
}
}]
api_value = [
{
'object': 'block',
'type': 'toggle',
'toggle': toggle_test_text
}
]
self.assertEqual(children_object.result, api_value)

def test_code(self):
children_object = Children()
children_object.set_code(code="test", lang="python")
code_test_text = self.default_test_text
code_test_text["language"] = "python"
del code_test_text["color"]
api_value = [
{
'object': 'block',
'type': 'code',
'code': code_test_text
}
]
self.assertEqual(children_object.result, api_value)

def test_embed(self):
children_object = Children()
children_object.set_embed(url="www.google.com")
api_value = [
{
'object': 'block',
'type': 'embed',
'embed': {
"url": "www.google.com"
}
}
]
self.assertEqual(children_object.result, api_value)

def test_image(self):
children_object = Children()
children_object.set_external_image(url="www.google.com/img.gif")
api_value = [
{
'object': 'block',
'type': 'image',
'image': {
"type": "external",
"external": {
"url": "www.google.com/img.gif"
}
}
}
]
self.assertEqual(children_object.result, api_value)

def test_video(self):
children_object = Children()
children_object.set_external_video(url="www.google.com/vod.avi")
api_value = [
{
'object': 'block',
'type': 'video',
'video': {
"type": "external",
"external": {
"url": "www.google.com/vod.avi"
}
}
}
]
self.assertEqual(children_object.result, api_value)

def test_file(self):
children_object = Children()
children_object.set_external_file(url="www.google.com/file.pdf")
api_value = [
{
'object': 'block',
'type': 'file',
'file': {
"type": "external",
"external": {
"url": "www.google.com/file.pdf"
}
}
}
]
self.assertEqual(children_object.result, api_value)

def test_pdf(self):
children_object = Children()
children_object.set_external_pdf(url="www.google.com/file.pdf")
api_value = [
{
'object': 'block',
'type': 'pdf',
'pdf': {
"type": "external",
"external": {
"url": "www.google.com/file.pdf"
}
}
}
]
self.assertEqual(children_object.result, api_value)

def test_bookmark(self):
children_object = Children()
children_object.set_bookmark(url="www.google.com")
api_value = [
{
'object': 'block',
'type': 'bookmark',
'bookmark': {
"url": "www.google.com"
}
}
]
self.assertEqual(children_object.result, api_value)

def test_equation(self):
children_object = Children()
children_object.set_equation(exp="e=mc^2")
api_value = [
{
'object': 'block',
'type': 'equation',
'equation': {
"expression": "e=mc^2"
}
}
]
self.assertEqual(children_object.result, api_value)


if __name__ == '__main__':
unittest.main()

0 comments on commit 46f1cb4

Please sign in to comment.