Skip to content

Commit 3869b87

Browse files
authored
Merge pull request #246 from awslabs/default-session
Add tests to the new default session.
2 parents 144a8f4 + 54b3386 commit 3869b87

File tree

3 files changed

+85
-9
lines changed

3 files changed

+85
-9
lines changed

awswrangler/_utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ def ensure_session(session: Optional[boto3.Session] = None) -> boto3.Session:
2323
return session
2424
# Ensure the boto3's default session is used so that its parameters can be
2525
# set via boto3.setup_default_session()
26-
return boto3._get_default_session() # pylint: disable=protected-access
26+
if boto3.DEFAULT_SESSION is not None:
27+
return boto3.DEFAULT_SESSION
28+
return boto3.Session()
2729

2830

2931
def client(service_name: str, session: Optional[boto3.Session] = None) -> boto3.client:
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import logging
2+
3+
import boto3
4+
5+
import awswrangler as wr
6+
7+
logging.basicConfig(level=logging.INFO, format="[%(asctime)s][%(levelname)s][%(name)s][%(funcName)s] %(message)s")
8+
logging.getLogger("awswrangler").setLevel(logging.DEBUG)
9+
logging.getLogger("botocore.credentials").setLevel(logging.CRITICAL)
10+
11+
12+
def test_default_session():
13+
boto3.setup_default_session(region_name="us-east-1")
14+
assert wr._utils.ensure_session().region_name == "us-east-1"
15+
boto3.setup_default_session(region_name="us-east-2")
16+
assert wr._utils.ensure_session().region_name == "us-east-2"
17+
boto3.setup_default_session(region_name="us-west-1")
18+
assert wr._utils.ensure_session().region_name == "us-west-1"
19+
boto3.setup_default_session(region_name="us-west-2")
20+
assert wr._utils.ensure_session().region_name == "us-west-2"

tutorials/02 - Sessions.ipynb

Lines changed: 62 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"\n",
2020
"Wrangler will not store any kind of state internally, and users is in charge of all the Sessions management, if necessary.\n",
2121
"\n",
22-
"Most Wrangler functions receive the optional `boto3_session` argument. If None is received, a default boto3 Session will be temporary created to run the function."
22+
"Most Wrangler functions receive the optional `boto3_session` argument. If None is received, the default boto3 Session will be used."
2323
]
2424
},
2525
{
@@ -36,7 +36,7 @@
3636
"cell_type": "markdown",
3737
"metadata": {},
3838
"source": [
39-
"## Using the default Sessions"
39+
"## Using the default Session"
4040
]
4141
},
4242
{
@@ -63,7 +63,7 @@
6363
"cell_type": "markdown",
6464
"metadata": {},
6565
"source": [
66-
"## Using custom Sessions"
66+
"## Customizing and using the default Session"
6767
]
6868
},
6969
{
@@ -83,7 +83,61 @@
8383
}
8484
],
8585
"source": [
86-
"wr.s3.does_object_exist(\"s3://noaa-ghcn-pds/fake\", boto3_session=boto3.Session(region_name=\"us-east-2\"))"
86+
"boto3.setup_default_session(region_name=\"us-east-2\")\n",
87+
"\n",
88+
"wr.s3.does_object_exist(\"s3://noaa-ghcn-pds/fake\")"
89+
]
90+
},
91+
{
92+
"cell_type": "markdown",
93+
"source": [
94+
"## Using a new custom Session"
95+
],
96+
"metadata": {
97+
"collapsed": false
98+
}
99+
},
100+
{
101+
"cell_type": "code",
102+
"execution_count": null,
103+
"outputs": [],
104+
"source": [
105+
"my_session = boto3.Session(region_name=\"us-east-2\")\n",
106+
"\n",
107+
"wr.s3.does_object_exist(\"s3://noaa-ghcn-pds/fake\", boto3_session=my_session)"
108+
],
109+
"metadata": {
110+
"collapsed": false,
111+
"pycharm": {
112+
"name": "#%%\n"
113+
}
114+
}
115+
},
116+
{
117+
"cell_type": "markdown",
118+
"metadata": {},
119+
"source": []
120+
},
121+
{
122+
"cell_type": "code",
123+
"execution_count": 4,
124+
"metadata": {},
125+
"outputs": [
126+
{
127+
"data": {
128+
"text/plain": [
129+
"False"
130+
]
131+
},
132+
"execution_count": 4,
133+
"metadata": {},
134+
"output_type": "execute_result"
135+
}
136+
],
137+
"source": [
138+
"my_session = boto3.Session(region_name=\"us-east-2\")\n",
139+
"\n",
140+
"wr.s3.does_object_exist(\"s3://noaa-ghcn-pds/fake\", boto3_session=my_session)"
87141
]
88142
},
89143
{
@@ -96,9 +150,9 @@
96150
],
97151
"metadata": {
98152
"kernelspec": {
99-
"display_name": "conda_python3",
153+
"display_name": "Python 3",
100154
"language": "python",
101-
"name": "conda_python3"
155+
"name": "python3"
102156
},
103157
"language_info": {
104158
"codemirror_mode": {
@@ -110,9 +164,9 @@
110164
"name": "python",
111165
"nbconvert_exporter": "python",
112166
"pygments_lexer": "ipython3",
113-
"version": "3.6.5"
167+
"version": "3.6.10"
114168
}
115169
},
116170
"nbformat": 4,
117171
"nbformat_minor": 4
118-
}
172+
}

0 commit comments

Comments
 (0)