python 2.8 - image texture stretch versus repeat
You need to create a Texture Coordinate node and connect it to the Image Texture node. This is necessary to provide a mapping for the 2D image onto the 3D model.

The Texture Coordinate node is created using:

tex_coord = nodes.new(type = 'ShaderNodeTexCoord')


Then link the appropriate coordinate type to your image texture. Usually this would be either UV for the coordinates created through UV unwrapping of your mesh or Generated for the automatically generated coordinates. Depending on what you choose, you'll have to use one of the following options to connect the sockets.

links.new(tex_coord.outputs["UV"], node_texture.inputs["Vector"])


or

links.new(tex_coord.outputs["Generated"], node_texture.inputs["Vector"])


The Extension of the Image Texture node doesn't have to be changed, since it is set to Repeat by default, just like the documentation says.