How to select vertices, then convert to face selection with Python?
Flush the selection

The bmesh module has some methods for flushing selection.


  Selection / Flushing
  
  As mentioned above, it is possible to create an invalid selection
  state (by selecting a state and then de-selecting one of its
  vertices’s for example), mostly the best way to solve this is to flush
  the selection after performing a series of edits. this validates the
  selection state.


Test Script: run in edit mode, selects vertices with 

import bpy
import bmesh


context = bpy.context
ob = context.edit_object
me = ob.data

bm = bmesh.from_edit_mesh(me)
for v in bm.verts:
    v.select_set(v.co.z &lt; 0)

bm.select_mode = {'VERT', 'EDGE', 'FACE'}
bm.select_flush_mode()
#bm.select_flush(True) # or select flush, deselect all first. 
# put in tool in face select mode (without op)    
context.tool_settings.mesh_select_mode = (False, False, True)
#bpy.ops.mesh.separate(type='SELECTED')


After the flush above only faces with all vertices selected are selected.  Verts not part of a selected face are deselected.